home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / sdktools / winnt / dlgedit / dlgfuncs.h < prev    next >
Text File  |  1997-10-05  |  11KB  |  369 lines

  1.  
  2. /******************************************************************************\
  3. *       This is a part of the Microsoft Source Code Samples. 
  4. *       Copyright (C) 1993-1997 Microsoft Corporation.
  5. *       All rights reserved. 
  6. *       This source code is only intended as a supplement to 
  7. *       Microsoft Development Tools and/or WinHelp documentation.
  8. *       See these sources for detailed information regarding the 
  9. *       Microsoft samples programs.
  10. \******************************************************************************/
  11.  
  12. /****************************** Module Header *******************************
  13. * Module Name: dlgfuncs.h
  14. *
  15. * Contains prototypes for the functions used in the dialog box editor.
  16. *
  17. ****************************************************************************/
  18.  
  19. /*
  20.  * addctrl.c
  21.  */
  22.  
  23. VOID AddNewDialog(VOID);
  24. VOID DropControl(PWINDOWCLASSDESC pwcd, PRECT prc);
  25. NPCTYPE AddControl(PWINDOWCLASSDESC pwcd, LPTSTR pszText, DWORD style,
  26.     DWORD flExtStyle, INT id, INT x, INT y, INT cx, INT cy, LPTSTR pszDlgName,
  27.     PDIALOGINFO pdi);
  28. HWND CreateControl(NPCTYPE npc, LPTSTR pszText, DWORD flStyle, DWORD flExtStyle,
  29.     INT id, PRECT prc, HWND hwndBehind, PDIALOGINFO pdi);
  30. VOID DeleteControl(VOID);
  31. VOID DeleteDialog(BOOL fResAlso);
  32. #ifdef JAPAN
  33. VOID KDExpandCopy(LPTSTR, LPTSTR, WORD);
  34. #endif
  35.  
  36. /*
  37.  * ctrlproc.c
  38.  */
  39.  
  40. WINDOWPROC DialogCtrlWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  41. WINDOWPROC CtrlWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  42. WINDOWPROC ChildWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  43. BOOL DrawOwnerDrawButton(LPDRAWITEMSTRUCT lpdis);
  44.  
  45.  
  46. /*
  47.  * custcntl.c
  48.  */
  49.  
  50. DIALOGPROC NewCustDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  51. VOID OpenCustomDialog(VOID);
  52. PWINDOWCLASSDESC SelCustDialog(VOID);
  53. DIALOGPROC SelCustDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  54. DIALOGPROC RemCustDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  55. WINDOWPROC CustomWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  56. PCUSTLINK AddCustomLink(LPCCINFO pcci, BOOL fEmulated, BOOL fUnicodeDLL,
  57.     LPTSTR pszFileName, HANDLE hmod);
  58. VOID RemoveCustomLink(PCUSTLINK pcl);
  59. BOOL CallCustomStyle(NPCTYPE npc, PDWORD pflStyleNew, PDWORD pflExtStyleNew,
  60.     LPTSTR pszTextNew);
  61. INT CallCustomSizeToText(NPCTYPE npc);
  62. VOID ReadCustomProfile(VOID);
  63. VOID WriteCustomProfile(VOID);
  64.  
  65.  
  66. /*
  67.  * dialogs.c
  68.  */
  69.  
  70. INT DlgBox(INT idDlg, WNDPROC lpfnDlg);
  71. VOID EnteringDialog(INT idDlg, PINT pidPrevDlg, BOOL fEntering);
  72. VOID CreateTestDialog(VOID);
  73. VOID DestroyTestDialog(VOID);
  74. VOID SelectDialogDialog(VOID);
  75. VOID ArrangeSettingsDialog(VOID);
  76. DIALOGPROC AboutDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  77.  
  78.  
  79. /*
  80.  * dlgedit.c
  81.  */
  82.  
  83. WINDOWPROC MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  84. BOOL ReadWindowPos(LPTSTR pszKeyName, PINT px, PINT py, PINT pcx, PINT pcy,
  85.     BOOL *pfMaximized);
  86. VOID WriteWindowPos(PRECT prc, BOOL fMaximized, LPTSTR pszKeyName);
  87.  
  88.  
  89. /*
  90.  * drag.c
  91.  */
  92.  
  93. VOID ShowTrackRect(VOID);
  94. VOID HideTrackRect(VOID);
  95. VOID FitRectToBounds(PRECT prc, INT nOverHang, INT HandleHit, BOOL fDialog);
  96. INT GetOverHang(INT iType, INT cy);
  97. VOID GridizeRect(PRECT prc, INT fGridFlags);
  98. VOID SizeDragToControl(NPCTYPE npc);
  99. WINDOWPROC DragWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  100. VOID DrawHandles(HWND hwnd, HDC hDC, BOOL fCurrentSelection);
  101. INT HandleHitTest(HWND hwnd, INT x, INT y);
  102. VOID CtrlButtonDown(HWND hwnd, INT x, INT y, BOOL fHandleWindow);
  103. VOID DragNewBegin(INT cx, INT cy, INT nOverHang);
  104. VOID CtrlMouseMove(HWND hwnd, BOOL fDragWindow, INT x, INT y);
  105. VOID PreDragTimeout(HWND hwnd, BOOL fTimedOut);
  106. VOID DragCancel(VOID);
  107. VOID CtrlButtonUp(INT x, INT y);
  108. VOID DragEnd(INT x, INT y);
  109.  
  110.  
  111. /*
  112.  * file.c
  113.  */
  114.  
  115. BOOL Open(INT FileType);
  116. VOID BuildFilterString(INT FileType, LPTSTR pszFilter);
  117. INT DoWeSave(INT rgbFlags);
  118. BOOL Save(INT rgbFlags);
  119. VOID OpenCmdLineFile(LPTSTR pszFileName);
  120. LPTSTR FileInPath(LPTSTR pszPath);
  121. VOID ShowFileStatus(BOOL fForce);
  122. BOOL DifferentDirs(LPTSTR pszPath1, LPTSTR pszPath2);
  123. BOOL HasPath(LPTSTR pszFileSpec);
  124. BOOL WriteDWordPad(HANDLE hf, DWORD cbFile);
  125.  
  126.  
  127. /*
  128.  * groupdlg.c
  129.  */
  130.  
  131. VOID OrderGroupDialog(VOID);
  132. DIALOGPROC OrderDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  133.  
  134. /*
  135.  * include.c
  136.  */
  137.  
  138. NPLABEL AddLabel(LPTSTR pszLabel, INT id, DWORD fpos,
  139.     INT nValueOffset, NPLABEL *pplHead, NPLABEL *pplDelHead,
  140.     NPLABEL npLabelSkip, BOOL *pfDups);
  141. NPLABEL FindLabel(LPTSTR pszLabel, NPLABEL plHead);
  142. NPLABEL FindID(INT id,  NPLABEL plHead);
  143. BOOL FindIDInRes(INT id);
  144. VOID DeleteLabel(LPTSTR pszLabel, NPLABEL *pplHead, NPLABEL *pplDelHead);
  145. BOOL IsSymbol(LPTSTR pszSym);
  146. VOID IDToLabel(LPTSTR pchLabel, INT id, BOOL fHexOK);
  147. BOOL LabelToID(LPTSTR pszLabel, PINT pID);
  148. VOID FreeLabels(NPLABEL *nppLabels);
  149.  
  150.  
  151. /*
  152.  * menu.c
  153.  */
  154.  
  155. VOID DialogMenu(INT cmd);
  156. VOID LoadMenuBitmaps(HMENU hMenu);
  157. VOID FreeMenuBitmaps(VOID);
  158. VOID InitMenu(HMENU hMenu);
  159. BOOL APIENTRY MsgFilterHookFunc(INT nCode, WPARAM wParam, LPMSG lpMsg);
  160. VOID ShowHelp(BOOL fMenuHelp);
  161.  
  162.  
  163. /*
  164.  * reslist.c
  165.  */
  166.  
  167. BOOL FindDialog(LPTSTR pszDlgName);
  168. PRESLINK AllocResLink(PRES pRes);
  169. VOID RestoreDialog(VOID);
  170. VOID FreeRes(VOID);
  171. VOID FreeResList(VOID);
  172. VOID FreeResLink(PRESLINK prl);
  173. VOID DeleteDialogResource(VOID);
  174.  
  175.  
  176. /*
  177.  * restodlg.c
  178.  */
  179.  
  180. BOOL SynchDialogResource(VOID);
  181. PRES AllocDialogResource(BOOL fTestMode, BOOL fClipboard);
  182. VOID ResLinkToDialog(PRESLINK prl);
  183. BOOL ResToDialog(PRES pRes, BOOL fDoDialog);
  184. INT GetiClass(LPTSTR pszClass);
  185. VOID Duplicate(VOID);
  186. VOID MakeCopyFromRes(PRES pRes);
  187.  
  188.  
  189. /*
  190.  * resutil.c
  191.  */
  192.  
  193. PCONTROLDATA ParseDialogBoxHeader(PDIALOGBOXHEADER pdbh, PDWORD pflStyle,
  194.     PDWORD pflExtStyle, PINT pcdit, PINT px, PINT py, PINT pcx, PINT pcy,
  195.     LPTSTR *ppszMenuName, LPTSTR *ppszClass, LPTSTR *ppszCaption,
  196.     PINT pPointSize, LPTSTR *ppszFontName);
  197. PCONTROLDATA ParseControlData(PCONTROLDATA pcd, PDWORD pflStyle,
  198.     PDWORD pflExtStyle, PINT px, PINT py, PINT pcx, PINT pcy, PINT pid,
  199.     LPTSTR *ppszClass, LPTSTR *ppszText);
  200. VOID DWordAlign(PBYTE *ppb);
  201. VOID DWordPad(PBYTE *ppb);
  202. LPTSTR ResourceType(PRES pRes);
  203. LPTSTR ResourceName(PRES pRes);
  204. PRES2 ResourcePart2(PRES pRes);
  205. DWORD ResourceSize(PRES pRes);
  206. PBYTE SkipResHeader(PRES pRes);
  207. PBYTE SkipSz(LPTSTR pNameOrd);
  208. PCONTROLDATA SkipDialogBoxHeader(PDIALOGBOXHEADER pdbh);
  209. PCONTROLDATA SkipControlData(PCONTROLDATA pcd);
  210. PBYTE NameOrdCpy(LPTSTR pNameOrdDest, LPTSTR pNameOrdSrc);
  211. INT NameOrdCmp(LPTSTR pNameOrd1, LPTSTR pNameOrd2);
  212. INT NameOrdLen(LPTSTR pNameOrd);
  213. LPTSTR NameOrdDup(LPTSTR pNameOrd);
  214. VOID StrToNameOrd(LPTSTR pszNameOrd, BOOL fDecOnly);
  215. PBYTE WriteOrd(PORDINAL pOrd, INT nOrdinalID);
  216. PBYTE WriteResHeader(PRES pRes, DWORD DataSize, INT iResType, LPTSTR pszResName,
  217.     WORD fResFlags, WORD LanguageId, DWORD DataVersion, DWORD Version,
  218.     DWORD Characteristics);
  219. PBYTE WriteSz(LPTSTR pszDest, LPTSTR pszSrc);
  220.  
  221.  
  222. /*
  223.  * rwdlg.c
  224.  */
  225.  
  226. BOOL WriteDlg(HANDLE hfWrite, LPTSTR pszFullDlgFile);
  227.  
  228.  
  229. /*
  230.  * rwinc.c
  231.  */
  232.  
  233. BOOL OpenIncludeFile(LPTSTR pszOpenInclude);
  234. VOID FreeInclude(VOID);
  235. BOOL WriteInc(HANDLE hfWrite);
  236.  
  237.  
  238. /*
  239.  * rwres.c
  240.  */
  241.  
  242. BOOL OpenResFile(LPTSTR pszFullPath);
  243. BOOL WriteRes(HANDLE hfWrite, LPTSTR pszFullResFile);
  244.  
  245.  
  246. /*
  247.  * select.c
  248.  */
  249.  
  250. BOOL SelectControl(NPCTYPE npc, BOOL fCheckShift);
  251. VOID SelectControl2(NPCTYPE npc, BOOL fDontUpdate);
  252. VOID RedrawSelection(VOID);
  253. VOID SetAnchorToFirstSel(BOOL fDontUpdate);
  254. VOID SelectNext(VOID);
  255. VOID SelectPrevious(VOID);
  256. VOID UnSelectControl(NPCTYPE npc);
  257. VOID CalcSelectedRect(VOID);
  258. VOID CancelSelection(BOOL fUpdate);
  259. VOID OutlineSelectBegin(INT x, INT y);
  260. VOID OutlineSelectDraw(INT x, INT y);
  261. VOID OutlineSelectCancel(VOID);
  262. VOID OutlineSelectEnd(INT x, INT y);
  263. VOID MyFrameRect(HDC hDC, PRECT prc, DWORD dwRop);
  264. VOID MoveControl(WPARAM vKey);
  265. VOID PositionControl(PRECT prc);
  266. VOID RepositionDialog(VOID);
  267. VOID SaveDlgClientRect(HWND hwndDlg);
  268. VOID SizeToText(VOID);
  269. VOID AlignControls(INT cmd);
  270. VOID ArrangeSpacing(INT cmd);
  271. VOID ArrangeSize(INT cmd);
  272. VOID ArrangePushButtons(INT cmd);
  273.  
  274.  
  275. /*
  276.  * status.c
  277.  */
  278.  
  279. DIALOGPROC StatusDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  280. BOOL StatusApplyChanges(VOID);
  281. VOID StatusFillSymbolList(NPLABEL plHead);
  282. VOID StatusSetCoords(PRECT prc);
  283. VOID StatusUpdate(VOID);
  284. VOID StatusSetEnable(VOID);
  285. #ifdef JAPAN
  286. VOID KKExpandCopy(LPTSTR, LPTSTR, WORD);
  287. #endif
  288.  
  289. /*
  290.  * styles.c
  291.  */
  292.  
  293. VOID StylesDialog(VOID);
  294. DIALOGPROC GenericStylesDlgProc(HWND hwnd, UINT msg, WPARAM wParam,
  295.     LPARAM lParam);
  296. DIALOGPROC CheckBoxStylesDlgProc(HWND hwnd, UINT msg, WPARAM wParam,
  297.     LPARAM lParam);
  298. DIALOGPROC RadioButtonStylesDlgProc(HWND hwnd, UINT msg, WPARAM wParam,
  299.     LPARAM lParam);
  300. DIALOGPROC PushButtonStylesDlgProc(HWND hwnd, UINT msg, WPARAM wParam,
  301.     LPARAM lParam);
  302. DIALOGPROC ComboBoxStylesDlgProc(HWND hwnd, UINT msg, WPARAM wParam,
  303.     LPARAM lParam);
  304. DIALOGPROC EditStylesDlgProc(HWND hwnd, UINT msg, WPARAM wParam,
  305.     LPARAM lParam);
  306. DIALOGPROC ListBoxStylesDlgProc(HWND hwnd, UINT msg, WPARAM wParam,
  307.     LPARAM lParam);
  308. DIALOGPROC CustomStylesDlgProc(HWND hwnd, UINT msg, WPARAM wParam,
  309.     LPARAM lParam);
  310. DIALOGPROC DialogStylesDlgProc(HWND hwnd, UINT msg, WPARAM wParam,
  311.     LPARAM lParam);
  312. BOOL APIENTRY FontNameEnumFunc(LPLOGFONT lpLogFont,
  313.     LPTEXTMETRIC lpTextMetric, INT nFontType, LPVOID lpData);
  314. BOOL APIENTRY PointSizeEnumFunc(LPLOGFONT lpLogFont,
  315.     LPTEXTMETRIC lpTextMetric, INT nFontType, LPVOID lpData);
  316.  
  317.  
  318. /*
  319.  * toolbox.c
  320.  */
  321.  
  322. VOID ToolboxShow(BOOL fShow);
  323. VOID ToolboxOnTop(VOID);
  324. WINDOWPROC ToolboxWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  325. WINDOWPROC ToolBtnWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  326. VOID ToolboxSelectTool(INT type, BOOL fLock);
  327.  
  328.  
  329. /*
  330.  * util.c
  331.  */
  332.  
  333. VOID *MyAlloc(INT cbAlloc);
  334. VOID *MyRealloc(VOID *npMem, INT cbNewAlloc);
  335. VOID *MyFree(VOID *npMem);
  336. BOOL IsValue(LPTSTR pszValue);
  337. BOOL HasBlanks(LPTSTR psz);
  338. INT valtoi(LPTSTR pszValue);
  339. INT axtoi(LPTSTR pch);
  340. VOID Myitoa(INT n, LPTSTR psz);
  341. VOID itoax(INT n, LPTSTR pszBuff);
  342. BOOL IsUniqueID(INT id);
  343. INT NextID(INT idType, NPLABEL plHead, INT idExclude);
  344. INT Message(INT idMsg, ...);
  345. VOID ClientToScreenRect(HWND hwnd, PRECT prc);
  346. VOID ScreenToClientRect(HWND hwnd, PRECT prc);
  347. VOID DUToWinPoint(PPOINT ppt);
  348. VOID WinToDUPoint(PPOINT ppt);
  349. VOID DUToWinRect(PRECT prc);
  350. VOID WinToDURect(PRECT prc);
  351. VOID MapDlgClientPoint(PPOINT ppt, BOOL fFromClient);
  352. VOID MapWindowPoint(HWND hwndFrom, HWND hwndTo, PPOINT ppt);
  353. VOID MyMapWindowRect(HWND hwndFrom, HWND hwndTo, PRECT prc);
  354. VOID GetChildRect(HWND hwndChild, PRECT prc);
  355. VOID CenterWindow(HWND hwnd);
  356. VOID FitRectToScreen(PRECT prc);
  357. LPTSTR ids(UINT idString);
  358. INT PixelsToPointSize(INT nPixels);
  359. INT PointSizeToPixels(INT nPointSize);
  360.  
  361.  
  362.  
  363. /*
  364.  * viewinc.c
  365.  */
  366.  
  367. VOID ViewInclude(VOID);
  368. DIALOGPROC ViewIncludeDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  369.