7 InsSpacePos(LPCTSTR szInsStr
, const int nPos
)
14 pszDestStr
= (LPTSTR
)malloc(MAX_SAMPLES_STR_SIZE
* sizeof(TCHAR
));
16 _tcscpy(pszDestStr
, szInsStr
);
18 nStrSize
= _tcslen(szInsStr
);
20 for (nStrCnt
= 0; nStrCnt
< nStrSize
; nStrCnt
++)
22 if (nStrCnt
== nStrSize
- nPos
)
24 pszDestStr
[nDestStrCnt
] = _T(' ');
28 pszDestStr
[nDestStrCnt
] = szInsStr
[nStrCnt
];
32 pszDestStr
[nDestStrCnt
] = _T('\0');
37 /* Insert the spaces by format string separated by ';' */
39 InsSpacesFmt(LPCTSTR szSourceStr
, LPCTSTR szFmtStr
)
50 pszDestStr
= (LPTSTR
)malloc(255 * sizeof(TCHAR
));
52 _tcscpy(pszDestStr
, szSourceStr
);
54 /* If format is clean return source string */
58 /* Search for all format values */
59 for (nFmtCount
= 0; nFmtCount
<= _tcslen(szFmtStr
); nFmtCount
++)
61 if (szFmtStr
[nFmtCount
] == _T(';') || szFmtStr
[nFmtCount
] == _T('\0'))
63 if (_ttoi(szFmtVal
) == 0 && !wasNul
)
69 /* If was 0, repeat spaces */
72 nSpaceOffset
+= nLastVal
;
76 nSpaceOffset
+= _ttoi(szFmtVal
);
79 szFmtVal
[nValCount
] = _T('\0');
82 /* Insert space to finded position plus all pos before */
83 pszTempStr
= InsSpacePos(pszDestStr
, nSpaceOffset
);
84 _tcscpy(pszDestStr
,pszTempStr
);
87 /* Num of spaces total increment */
91 nLastVal
= _ttoi(szFmtVal
);
96 szFmtVal
[nValCount
++] = szFmtStr
[nFmtCount
];
100 /* Create spaces for rest part of string */
101 if (wasNul
&& nLastVal
!= 0)
103 for (nFmtCount
= nSpaceOffset
+ nLastVal
; nFmtCount
< _tcslen(pszDestStr
); nFmtCount
+= nLastVal
+ 1)
105 pszTempStr
= InsSpacePos(pszDestStr
, nFmtCount
);
106 _tcscpy(pszDestStr
, pszTempStr
);
114 /* Replace given template in source string with string to replace and return recieved string */
116 ReplaceSubStr(LPCTSTR szSourceStr
,
117 LPCTSTR szStrToReplace
,
126 szDestStr
= (LPTSTR
)malloc(MAX_SAMPLES_STR_SIZE
* sizeof(TCHAR
));
131 _tcscpy(szDestStr
, _T(""));
133 while (nFirstCharCnt
< _tcslen(szSourceStr
))
135 if (szSourceStr
[nFirstCharCnt
] == szTempl
[0])
138 for (nCharCnt
= nFirstCharCnt
; nCharCnt
< nFirstCharCnt
+ _tcslen(szTempl
); nCharCnt
++)
140 if (szSourceStr
[nCharCnt
] == szTempl
[nSubStrCnt
])
149 if (_tcslen(szTempl
) == nSubStrCnt
)
151 _tcscat(szDestStr
, szStrToReplace
);
152 nDestStrCnt
= _tcslen(szDestStr
);
153 nFirstCharCnt
+= _tcslen(szTempl
) - 1;
160 szDestStr
[nDestStrCnt
++] = szSourceStr
[nFirstCharCnt
];
161 szDestStr
[nDestStrCnt
] = _T('\0');
172 InitPropSheetPage(PROPSHEETPAGE
*psp
, WORD idDlg
, DLGPROC DlgProc
, PGLOBALDATA pGlobalData
)
174 ZeroMemory(psp
, sizeof(PROPSHEETPAGE
));
175 psp
->dwSize
= sizeof(PROPSHEETPAGE
);
176 psp
->dwFlags
= PSP_DEFAULT
;
177 psp
->hInstance
= hApplet
;
178 psp
->pszTemplate
= MAKEINTRESOURCE(idDlg
);
179 psp
->pfnDlgProc
= DlgProc
;
180 psp
->lParam
= (LPARAM
)pGlobalData
;
187 SetupApplet(HWND hwndDlg
, LCID lcid
)
189 PROPSHEETPAGE PsPage
[NUM_SHEETS
+ 1];
191 PGLOBALDATA pGlobalData
;
192 TCHAR Caption
[MAX_STR_SIZE
];
195 LoadString(hApplet
, IDS_CUSTOMIZE_TITLE
, Caption
, sizeof(Caption
) / sizeof(TCHAR
));
197 pGlobalData
= (PGLOBALDATA
)malloc(sizeof(GLOBALDATA
));
199 pGlobalData
->lcid
= lcid
;
201 ZeroMemory(&psh
, sizeof(PROPSHEETHEADER
));
202 psh
.dwSize
= sizeof(PROPSHEETHEADER
);
203 psh
.dwFlags
= PSH_PROPSHEETPAGE
| PSH_USECALLBACK
| PSH_PROPTITLE
;
204 psh
.hwndParent
= hwndDlg
;
205 psh
.hInstance
= hApplet
;
206 psh
.hIcon
= LoadIcon(hApplet
, MAKEINTRESOURCE(IDC_CPLICON
));
207 psh
.pszCaption
= Caption
;
208 psh
.nPages
= (sizeof(PsPage
) / sizeof(PROPSHEETPAGE
)) - 1;
212 InitPropSheetPage(&PsPage
[0], IDD_NUMBERSPAGE
, NumbersPageProc
, pGlobalData
);
213 InitPropSheetPage(&PsPage
[1], IDD_CURRENCYPAGE
, CurrencyPageProc
, pGlobalData
);
214 InitPropSheetPage(&PsPage
[2], IDD_TIMEPAGE
, TimePageProc
, pGlobalData
);
215 InitPropSheetPage(&PsPage
[3], IDD_DATEPAGE
, DatePageProc
, pGlobalData
);
217 if (IsSortPageNeeded(lcid
))
220 InitPropSheetPage(&PsPage
[4], IDD_SORTPAGE
, SortPageProc
, pGlobalData
);
223 ret
= PropertySheet(&psh
);
227 return (LONG
)(ret
!= -1);