11 /* Insert the space */
13 InsSpacePos(LPCTSTR szInsStr
, const int nPos
)
20 pszDestStr
= (LPTSTR
)malloc(MAX_SAMPLES_STR_SIZE
* sizeof(TCHAR
));
22 _tcscpy(pszDestStr
, szInsStr
);
24 nStrSize
= _tcslen(szInsStr
);
26 for (nStrCnt
= 0; nStrCnt
< nStrSize
; nStrCnt
++)
28 if (nStrCnt
== nStrSize
- nPos
)
30 pszDestStr
[nDestStrCnt
] = _T(' ');
34 pszDestStr
[nDestStrCnt
] = szInsStr
[nStrCnt
];
38 pszDestStr
[nDestStrCnt
] = _T('\0');
43 /* Insert the spaces by format string separated by ';' */
45 InsSpacesFmt(LPCTSTR szSourceStr
, LPCTSTR szFmtStr
)
56 pszDestStr
= (LPTSTR
)malloc(255 * sizeof(TCHAR
));
58 _tcscpy(pszDestStr
, szSourceStr
);
60 /* if format is clean return source string */
64 /* Search for all format values */
65 for (nFmtCount
= 0; nFmtCount
<= _tcslen(szFmtStr
); nFmtCount
++)
67 if (szFmtStr
[nFmtCount
] == _T(';') || szFmtStr
[nFmtCount
] == _T('\0'))
69 if (_ttoi(szFmtVal
) == 0 && !wasNul
)
75 /* If was 0, repeat spaces */
78 nSpaceOffset
+= nLastVal
;
82 nSpaceOffset
+= _ttoi(szFmtVal
);
85 szFmtVal
[nValCount
] = _T('\0');
88 /* insert space to finded position plus all pos before */
89 pszTempStr
= InsSpacePos(pszDestStr
, nSpaceOffset
);
90 _tcscpy(pszDestStr
,pszTempStr
);
93 /* num of spaces total increment */
97 nLastVal
= _ttoi(szFmtVal
);
102 szFmtVal
[nValCount
++] = szFmtStr
[nFmtCount
];
106 /* Create spaces for rest part of string */
107 if (wasNul
&& nLastVal
!= 0)
109 for (nFmtCount
= nSpaceOffset
+ nLastVal
; nFmtCount
< _tcslen(pszDestStr
); nFmtCount
+= nLastVal
+ 1)
111 pszTempStr
= InsSpacePos(pszDestStr
, nFmtCount
);
112 _tcscpy(pszDestStr
, pszTempStr
);
120 /* Replace given template in source string with string to replace and return recieved string */
122 ReplaceSubStr(LPCTSTR szSourceStr
,
123 LPCTSTR szStrToReplace
,
132 szDestStr
= (LPTSTR
)malloc(MAX_SAMPLES_STR_SIZE
* sizeof(TCHAR
));
137 _tcscpy(szDestStr
, _T(""));
139 while (nFirstCharCnt
< _tcslen(szSourceStr
))
141 if (szSourceStr
[nFirstCharCnt
] == szTempl
[0])
144 for (nCharCnt
= nFirstCharCnt
; nCharCnt
< nFirstCharCnt
+ _tcslen(szTempl
); nCharCnt
++)
146 if (szSourceStr
[nCharCnt
] == szTempl
[nSubStrCnt
])
155 if (_tcslen(szTempl
) == nSubStrCnt
)
157 _tcscat(szDestStr
, szStrToReplace
);
158 nDestStrCnt
= _tcslen(szDestStr
);
159 nFirstCharCnt
+= _tcslen(szTempl
) - 1;
166 szDestStr
[nDestStrCnt
++] = szSourceStr
[nFirstCharCnt
];
167 szDestStr
[nDestStrCnt
] = _T('\0');
178 InitPropSheetPage(PROPSHEETPAGE
*psp
, WORD idDlg
, DLGPROC DlgProc
, PGLOBALDATA pGlobalData
)
180 ZeroMemory(psp
, sizeof(PROPSHEETPAGE
));
181 psp
->dwSize
= sizeof(PROPSHEETPAGE
);
182 psp
->dwFlags
= PSP_DEFAULT
;
183 psp
->hInstance
= hApplet
;
184 psp
->pszTemplate
= MAKEINTRESOURCE(idDlg
);
185 psp
->pfnDlgProc
= DlgProc
;
186 psp
->lParam
= (LPARAM
)pGlobalData
;
193 SetupApplet(HWND hwndDlg
, LCID lcid
)
195 PROPSHEETPAGE PsPage
[NUM_SHEETS
+ 1];
197 PGLOBALDATA pGlobalData
;
198 TCHAR Caption
[MAX_STR_SIZE
];
201 LoadString(hApplet
, IDS_CUSTOMIZE_TITLE
, Caption
, sizeof(Caption
) / sizeof(TCHAR
));
203 pGlobalData
= (PGLOBALDATA
)malloc(sizeof(GLOBALDATA
));
205 pGlobalData
->lcid
= lcid
;
207 ZeroMemory(&psh
, sizeof(PROPSHEETHEADER
));
208 psh
.dwSize
= sizeof(PROPSHEETHEADER
);
209 psh
.dwFlags
= PSH_PROPSHEETPAGE
| PSH_USECALLBACK
| PSH_PROPTITLE
;
210 psh
.hwndParent
= hwndDlg
;
211 psh
.hInstance
= hApplet
;
212 psh
.hIcon
= LoadIcon(hApplet
, MAKEINTRESOURCE(IDC_CPLICON
));
213 psh
.pszCaption
= Caption
;
214 psh
.nPages
= (sizeof(PsPage
) / sizeof(PROPSHEETPAGE
)) - 1;
218 InitPropSheetPage(&PsPage
[0], IDD_NUMBERSPAGE
, NumbersPageProc
, pGlobalData
);
219 InitPropSheetPage(&PsPage
[1], IDD_CURRENCYPAGE
, CurrencyPageProc
, pGlobalData
);
220 InitPropSheetPage(&PsPage
[2], IDD_TIMEPAGE
, TimePageProc
, pGlobalData
);
221 InitPropSheetPage(&PsPage
[3], IDD_DATEPAGE
, DatePageProc
, pGlobalData
);
223 if (IsSortPageNeeded(lcid
))
226 InitPropSheetPage(&PsPage
[4], IDD_SORTPAGE
, SortPageProc
, pGlobalData
);
229 ret
= PropertySheet(&psh
);
233 return (LONG
)(ret
!= -1);