WinUser.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:274k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #endif /* WINVER >= 0x0400 */
  2. #define HWND_TOP        ((HWND)0)
  3. #define HWND_BOTTOM     ((HWND)1)
  4. #define HWND_TOPMOST    ((HWND)-1)
  5. #define HWND_NOTOPMOST  ((HWND)-2)
  6. #ifndef NOCTLMGR
  7. /*
  8.  * WARNING:
  9.  * The following structures must NOT be DWORD padded because they are
  10.  * followed by strings, etc that do not have to be DWORD aligned.
  11.  */
  12. #include <pshpack2.h>
  13. /*
  14.  * original NT 32 bit dialog template:
  15.  */
  16. typedef struct {
  17.     DWORD style;
  18.     DWORD dwExtendedStyle;
  19.     WORD cdit;
  20.     short x;
  21.     short y;
  22.     short cx;
  23.     short cy;
  24. } DLGTEMPLATE;
  25. typedef DLGTEMPLATE *LPDLGTEMPLATEA;
  26. typedef DLGTEMPLATE *LPDLGTEMPLATEW;
  27. #ifdef UNICODE
  28. typedef LPDLGTEMPLATEW LPDLGTEMPLATE;
  29. #else
  30. typedef LPDLGTEMPLATEA LPDLGTEMPLATE;
  31. #endif // UNICODE
  32. typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA;
  33. typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW;
  34. #ifdef UNICODE
  35. typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE;
  36. #else
  37. typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE;
  38. #endif // UNICODE
  39. /*
  40.  * 32 bit Dialog item template.
  41.  */
  42. typedef struct {
  43.     DWORD style;
  44.     DWORD dwExtendedStyle;
  45.     short x;
  46.     short y;
  47.     short cx;
  48.     short cy;
  49.     WORD id;
  50. } DLGITEMTEMPLATE;
  51. typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA;
  52. typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW;
  53. #ifdef UNICODE
  54. typedef PDLGITEMTEMPLATEW PDLGITEMTEMPLATE;
  55. #else
  56. typedef PDLGITEMTEMPLATEA PDLGITEMTEMPLATE;
  57. #endif // UNICODE
  58. typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
  59. typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
  60. #ifdef UNICODE
  61. typedef LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE;
  62. #else
  63. typedef LPDLGITEMTEMPLATEA LPDLGITEMTEMPLATE;
  64. #endif // UNICODE
  65. #include <poppack.h> /* Resume normal packing */
  66. WINUSERAPI
  67. HWND
  68. WINAPI
  69. CreateDialogParamA(
  70.     IN HINSTANCE hInstance,
  71.     IN LPCSTR lpTemplateName,
  72.     IN HWND hWndParent,
  73.     IN DLGPROC lpDialogFunc,
  74.     IN LPARAM dwInitParam);
  75. WINUSERAPI
  76. HWND
  77. WINAPI
  78. CreateDialogParamW(
  79.     IN HINSTANCE hInstance,
  80.     IN LPCWSTR lpTemplateName,
  81.     IN HWND hWndParent,
  82.     IN DLGPROC lpDialogFunc,
  83.     IN LPARAM dwInitParam);
  84. #ifdef UNICODE
  85. #define CreateDialogParam  CreateDialogParamW
  86. #else
  87. #define CreateDialogParam  CreateDialogParamA
  88. #endif // !UNICODE
  89. WINUSERAPI
  90. HWND
  91. WINAPI
  92. CreateDialogIndirectParamA(
  93.     IN HINSTANCE hInstance,
  94.     IN LPCDLGTEMPLATEA lpTemplate,
  95.     IN HWND hWndParent,
  96.     IN DLGPROC lpDialogFunc,
  97.     IN LPARAM dwInitParam);
  98. WINUSERAPI
  99. HWND
  100. WINAPI
  101. CreateDialogIndirectParamW(
  102.     IN HINSTANCE hInstance,
  103.     IN LPCDLGTEMPLATEW lpTemplate,
  104.     IN HWND hWndParent,
  105.     IN DLGPROC lpDialogFunc,
  106.     IN LPARAM dwInitParam);
  107. #ifdef UNICODE
  108. #define CreateDialogIndirectParam  CreateDialogIndirectParamW
  109. #else
  110. #define CreateDialogIndirectParam  CreateDialogIndirectParamA
  111. #endif // !UNICODE
  112. #define CreateDialogA(hInstance, lpName, hWndParent, lpDialogFunc) 
  113. CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0L)
  114. #define CreateDialogW(hInstance, lpName, hWndParent, lpDialogFunc) 
  115. CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0L)
  116. #ifdef UNICODE
  117. #define CreateDialog  CreateDialogW
  118. #else
  119. #define CreateDialog  CreateDialogA
  120. #endif // !UNICODE
  121. #define CreateDialogIndirectA(hInstance, lpTemplate, hWndParent, lpDialogFunc) 
  122. CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
  123. #define CreateDialogIndirectW(hInstance, lpTemplate, hWndParent, lpDialogFunc) 
  124. CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
  125. #ifdef UNICODE
  126. #define CreateDialogIndirect  CreateDialogIndirectW
  127. #else
  128. #define CreateDialogIndirect  CreateDialogIndirectA
  129. #endif // !UNICODE
  130. WINUSERAPI
  131. INT_PTR
  132. WINAPI
  133. DialogBoxParamA(
  134.     IN HINSTANCE hInstance,
  135.     IN LPCSTR lpTemplateName,
  136.     IN HWND hWndParent,
  137.     IN DLGPROC lpDialogFunc,
  138.     IN LPARAM dwInitParam);
  139. WINUSERAPI
  140. INT_PTR
  141. WINAPI
  142. DialogBoxParamW(
  143.     IN HINSTANCE hInstance,
  144.     IN LPCWSTR lpTemplateName,
  145.     IN HWND hWndParent,
  146.     IN DLGPROC lpDialogFunc,
  147.     IN LPARAM dwInitParam);
  148. #ifdef UNICODE
  149. #define DialogBoxParam  DialogBoxParamW
  150. #else
  151. #define DialogBoxParam  DialogBoxParamA
  152. #endif // !UNICODE
  153. WINUSERAPI
  154. INT_PTR
  155. WINAPI
  156. DialogBoxIndirectParamA(
  157.     IN HINSTANCE hInstance,
  158.     IN LPCDLGTEMPLATEA hDialogTemplate,
  159.     IN HWND hWndParent,
  160.     IN DLGPROC lpDialogFunc,
  161.     IN LPARAM dwInitParam);
  162. WINUSERAPI
  163. INT_PTR
  164. WINAPI
  165. DialogBoxIndirectParamW(
  166.     IN HINSTANCE hInstance,
  167.     IN LPCDLGTEMPLATEW hDialogTemplate,
  168.     IN HWND hWndParent,
  169.     IN DLGPROC lpDialogFunc,
  170.     IN LPARAM dwInitParam);
  171. #ifdef UNICODE
  172. #define DialogBoxIndirectParam  DialogBoxIndirectParamW
  173. #else
  174. #define DialogBoxIndirectParam  DialogBoxIndirectParamA
  175. #endif // !UNICODE
  176. #define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) 
  177. DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
  178. #define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) 
  179. DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
  180. #ifdef UNICODE
  181. #define DialogBox  DialogBoxW
  182. #else
  183. #define DialogBox  DialogBoxA
  184. #endif // !UNICODE
  185. #define DialogBoxIndirectA(hInstance, lpTemplate, hWndParent, lpDialogFunc) 
  186. DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
  187. #define DialogBoxIndirectW(hInstance, lpTemplate, hWndParent, lpDialogFunc) 
  188. DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
  189. #ifdef UNICODE
  190. #define DialogBoxIndirect  DialogBoxIndirectW
  191. #else
  192. #define DialogBoxIndirect  DialogBoxIndirectA
  193. #endif // !UNICODE
  194. WINUSERAPI
  195. BOOL
  196. WINAPI
  197. EndDialog(
  198.     IN HWND hDlg,
  199.     IN INT_PTR nResult);
  200. WINUSERAPI
  201. HWND
  202. WINAPI
  203. GetDlgItem(
  204.     IN HWND hDlg,
  205.     IN int nIDDlgItem);
  206. WINUSERAPI
  207. BOOL
  208. WINAPI
  209. SetDlgItemInt(
  210.     IN HWND hDlg,
  211.     IN int nIDDlgItem,
  212.     IN UINT uValue,
  213.     IN BOOL bSigned);
  214. WINUSERAPI
  215. UINT
  216. WINAPI
  217. GetDlgItemInt(
  218.     IN HWND hDlg,
  219.     IN int nIDDlgItem,
  220.     OUT BOOL *lpTranslated,
  221.     IN BOOL bSigned);
  222. WINUSERAPI
  223. BOOL
  224. WINAPI
  225. SetDlgItemTextA(
  226.     IN HWND hDlg,
  227.     IN int nIDDlgItem,
  228.     IN LPCSTR lpString);
  229. WINUSERAPI
  230. BOOL
  231. WINAPI
  232. SetDlgItemTextW(
  233.     IN HWND hDlg,
  234.     IN int nIDDlgItem,
  235.     IN LPCWSTR lpString);
  236. #ifdef UNICODE
  237. #define SetDlgItemText  SetDlgItemTextW
  238. #else
  239. #define SetDlgItemText  SetDlgItemTextA
  240. #endif // !UNICODE
  241. WINUSERAPI
  242. UINT
  243. WINAPI
  244. GetDlgItemTextA(
  245.     IN HWND hDlg,
  246.     IN int nIDDlgItem,
  247.     OUT LPSTR lpString,
  248.     IN int nMaxCount);
  249. WINUSERAPI
  250. UINT
  251. WINAPI
  252. GetDlgItemTextW(
  253.     IN HWND hDlg,
  254.     IN int nIDDlgItem,
  255.     OUT LPWSTR lpString,
  256.     IN int nMaxCount);
  257. #ifdef UNICODE
  258. #define GetDlgItemText  GetDlgItemTextW
  259. #else
  260. #define GetDlgItemText  GetDlgItemTextA
  261. #endif // !UNICODE
  262. WINUSERAPI
  263. BOOL
  264. WINAPI
  265. CheckDlgButton(
  266.     IN HWND hDlg,
  267.     IN int nIDButton,
  268.     IN UINT uCheck);
  269. WINUSERAPI
  270. BOOL
  271. WINAPI
  272. CheckRadioButton(
  273.     IN HWND hDlg,
  274.     IN int nIDFirstButton,
  275.     IN int nIDLastButton,
  276.     IN int nIDCheckButton);
  277. WINUSERAPI
  278. UINT
  279. WINAPI
  280. IsDlgButtonChecked(
  281.     IN HWND hDlg,
  282.     IN int nIDButton);
  283. WINUSERAPI
  284. LRESULT
  285. WINAPI
  286. SendDlgItemMessageA(
  287.     IN HWND hDlg,
  288.     IN int nIDDlgItem,
  289.     IN UINT Msg,
  290.     IN WPARAM wParam,
  291.     IN LPARAM lParam);
  292. WINUSERAPI
  293. LRESULT
  294. WINAPI
  295. SendDlgItemMessageW(
  296.     IN HWND hDlg,
  297.     IN int nIDDlgItem,
  298.     IN UINT Msg,
  299.     IN WPARAM wParam,
  300.     IN LPARAM lParam);
  301. #ifdef UNICODE
  302. #define SendDlgItemMessage  SendDlgItemMessageW
  303. #else
  304. #define SendDlgItemMessage  SendDlgItemMessageA
  305. #endif // !UNICODE
  306. WINUSERAPI
  307. HWND
  308. WINAPI
  309. GetNextDlgGroupItem(
  310.     IN HWND hDlg,
  311.     IN HWND hCtl,
  312.     IN BOOL bPrevious);
  313. WINUSERAPI
  314. HWND
  315. WINAPI
  316. GetNextDlgTabItem(
  317.     IN HWND hDlg,
  318.     IN HWND hCtl,
  319.     IN BOOL bPrevious);
  320. WINUSERAPI
  321. int
  322. WINAPI
  323. GetDlgCtrlID(
  324.     IN HWND hWnd);
  325. WINUSERAPI
  326. long
  327. WINAPI
  328. GetDialogBaseUnits(VOID);
  329. WINUSERAPI
  330. #ifndef _MAC
  331. LRESULT
  332. WINAPI
  333. #else
  334. LRESULT
  335. CALLBACK
  336. #endif
  337. DefDlgProcA(
  338.     IN HWND hDlg,
  339.     IN UINT Msg,
  340.     IN WPARAM wParam,
  341.     IN LPARAM lParam);
  342. WINUSERAPI
  343. #ifndef _MAC
  344. LRESULT
  345. WINAPI
  346. #else
  347. LRESULT
  348. CALLBACK
  349. #endif
  350. DefDlgProcW(
  351.     IN HWND hDlg,
  352.     IN UINT Msg,
  353.     IN WPARAM wParam,
  354.     IN LPARAM lParam);
  355. #ifdef UNICODE
  356. #define DefDlgProc  DefDlgProcW
  357. #else
  358. #define DefDlgProc  DefDlgProcA
  359. #endif // !UNICODE
  360. /*
  361.  * Window extra byted needed for private dialog classes.
  362.  */
  363. #ifndef _MAC
  364. #define DLGWINDOWEXTRA 30
  365. #else
  366. #define DLGWINDOWEXTRA 48
  367. #endif
  368. #endif /* !NOCTLMGR */
  369. #ifndef NOMSG
  370. WINUSERAPI
  371. BOOL
  372. WINAPI
  373. CallMsgFilterA(
  374.     IN LPMSG lpMsg,
  375.     IN int nCode);
  376. WINUSERAPI
  377. BOOL
  378. WINAPI
  379. CallMsgFilterW(
  380.     IN LPMSG lpMsg,
  381.     IN int nCode);
  382. #ifdef UNICODE
  383. #define CallMsgFilter  CallMsgFilterW
  384. #else
  385. #define CallMsgFilter  CallMsgFilterA
  386. #endif // !UNICODE
  387. #endif /* !NOMSG */
  388. #ifndef NOCLIPBOARD
  389. /*
  390.  * Clipboard Manager Functions
  391.  */
  392. WINUSERAPI
  393. BOOL
  394. WINAPI
  395. OpenClipboard(
  396.     IN HWND hWndNewOwner);
  397. WINUSERAPI
  398. BOOL
  399. WINAPI
  400. CloseClipboard(
  401.     VOID);
  402. #if(WINVER >= 0x0500)
  403. WINUSERAPI
  404. DWORD
  405. WINAPI
  406. GetClipboardSequenceNumber(
  407.     VOID);
  408. #endif /* WINVER >= 0x0500 */
  409. WINUSERAPI
  410. HWND
  411. WINAPI
  412. GetClipboardOwner(
  413.     VOID);
  414. WINUSERAPI
  415. HWND
  416. WINAPI
  417. SetClipboardViewer(
  418.     IN HWND hWndNewViewer);
  419. WINUSERAPI
  420. HWND
  421. WINAPI
  422. GetClipboardViewer(
  423.     VOID);
  424. WINUSERAPI
  425. BOOL
  426. WINAPI
  427. ChangeClipboardChain(
  428.     IN HWND hWndRemove,
  429.     IN HWND hWndNewNext);
  430. WINUSERAPI
  431. HANDLE
  432. WINAPI
  433. SetClipboardData(
  434.     IN UINT uFormat,
  435.     IN HANDLE hMem);
  436. WINUSERAPI
  437. HANDLE
  438. WINAPI
  439. GetClipboardData(
  440.     IN UINT uFormat);
  441. WINUSERAPI
  442. UINT
  443. WINAPI
  444. RegisterClipboardFormatA(
  445.     IN LPCSTR lpszFormat);
  446. WINUSERAPI
  447. UINT
  448. WINAPI
  449. RegisterClipboardFormatW(
  450.     IN LPCWSTR lpszFormat);
  451. #ifdef UNICODE
  452. #define RegisterClipboardFormat  RegisterClipboardFormatW
  453. #else
  454. #define RegisterClipboardFormat  RegisterClipboardFormatA
  455. #endif // !UNICODE
  456. WINUSERAPI
  457. int
  458. WINAPI
  459. CountClipboardFormats(
  460.     VOID);
  461. WINUSERAPI
  462. UINT
  463. WINAPI
  464. EnumClipboardFormats(
  465.     IN UINT format);
  466. WINUSERAPI
  467. int
  468. WINAPI
  469. GetClipboardFormatNameA(
  470.     IN UINT format,
  471.     OUT LPSTR lpszFormatName,
  472.     IN int cchMaxCount);
  473. WINUSERAPI
  474. int
  475. WINAPI
  476. GetClipboardFormatNameW(
  477.     IN UINT format,
  478.     OUT LPWSTR lpszFormatName,
  479.     IN int cchMaxCount);
  480. #ifdef UNICODE
  481. #define GetClipboardFormatName  GetClipboardFormatNameW
  482. #else
  483. #define GetClipboardFormatName  GetClipboardFormatNameA
  484. #endif // !UNICODE
  485. WINUSERAPI
  486. BOOL
  487. WINAPI
  488. EmptyClipboard(
  489.     VOID);
  490. WINUSERAPI
  491. BOOL
  492. WINAPI
  493. IsClipboardFormatAvailable(
  494.     IN UINT format);
  495. WINUSERAPI
  496. int
  497. WINAPI
  498. GetPriorityClipboardFormat(
  499.     OUT UINT *paFormatPriorityList,
  500.     IN int cFormats);
  501. WINUSERAPI
  502. HWND
  503. WINAPI
  504. GetOpenClipboardWindow(
  505.     VOID);
  506. #endif /* !NOCLIPBOARD */
  507. /*
  508.  * Character Translation Routines
  509.  */
  510. WINUSERAPI
  511. BOOL
  512. WINAPI
  513. CharToOemA(
  514.     IN LPCSTR lpszSrc,
  515.     OUT LPSTR lpszDst);
  516. WINUSERAPI
  517. BOOL
  518. WINAPI
  519. CharToOemW(
  520.     IN LPCWSTR lpszSrc,
  521.     OUT LPSTR lpszDst);
  522. #ifdef UNICODE
  523. #define CharToOem  CharToOemW
  524. #else
  525. #define CharToOem  CharToOemA
  526. #endif // !UNICODE
  527. WINUSERAPI
  528. BOOL
  529. WINAPI
  530. OemToCharA(
  531.     IN LPCSTR lpszSrc,
  532.     OUT LPSTR lpszDst);
  533. WINUSERAPI
  534. BOOL
  535. WINAPI
  536. OemToCharW(
  537.     IN LPCSTR lpszSrc,
  538.     OUT LPWSTR lpszDst);
  539. #ifdef UNICODE
  540. #define OemToChar  OemToCharW
  541. #else
  542. #define OemToChar  OemToCharA
  543. #endif // !UNICODE
  544. WINUSERAPI
  545. BOOL
  546. WINAPI
  547. CharToOemBuffA(
  548.     IN LPCSTR lpszSrc,
  549.     OUT LPSTR lpszDst,
  550.     IN DWORD cchDstLength);
  551. WINUSERAPI
  552. BOOL
  553. WINAPI
  554. CharToOemBuffW(
  555.     IN LPCWSTR lpszSrc,
  556.     OUT LPSTR lpszDst,
  557.     IN DWORD cchDstLength);
  558. #ifdef UNICODE
  559. #define CharToOemBuff  CharToOemBuffW
  560. #else
  561. #define CharToOemBuff  CharToOemBuffA
  562. #endif // !UNICODE
  563. WINUSERAPI
  564. BOOL
  565. WINAPI
  566. OemToCharBuffA(
  567.     IN LPCSTR lpszSrc,
  568.     OUT LPSTR lpszDst,
  569.     IN DWORD cchDstLength);
  570. WINUSERAPI
  571. BOOL
  572. WINAPI
  573. OemToCharBuffW(
  574.     IN LPCSTR lpszSrc,
  575.     OUT LPWSTR lpszDst,
  576.     IN DWORD cchDstLength);
  577. #ifdef UNICODE
  578. #define OemToCharBuff  OemToCharBuffW
  579. #else
  580. #define OemToCharBuff  OemToCharBuffA
  581. #endif // !UNICODE
  582. WINUSERAPI
  583. LPSTR
  584. WINAPI
  585. CharUpperA(
  586.     IN OUT LPSTR lpsz);
  587. WINUSERAPI
  588. LPWSTR
  589. WINAPI
  590. CharUpperW(
  591.     IN OUT LPWSTR lpsz);
  592. #ifdef UNICODE
  593. #define CharUpper  CharUpperW
  594. #else
  595. #define CharUpper  CharUpperA
  596. #endif // !UNICODE
  597. WINUSERAPI
  598. DWORD
  599. WINAPI
  600. CharUpperBuffA(
  601.     IN OUT LPSTR lpsz,
  602.     IN DWORD cchLength);
  603. WINUSERAPI
  604. DWORD
  605. WINAPI
  606. CharUpperBuffW(
  607.     IN OUT LPWSTR lpsz,
  608.     IN DWORD cchLength);
  609. #ifdef UNICODE
  610. #define CharUpperBuff  CharUpperBuffW
  611. #else
  612. #define CharUpperBuff  CharUpperBuffA
  613. #endif // !UNICODE
  614. WINUSERAPI
  615. LPSTR
  616. WINAPI
  617. CharLowerA(
  618.     IN OUT LPSTR lpsz);
  619. WINUSERAPI
  620. LPWSTR
  621. WINAPI
  622. CharLowerW(
  623.     IN OUT LPWSTR lpsz);
  624. #ifdef UNICODE
  625. #define CharLower  CharLowerW
  626. #else
  627. #define CharLower  CharLowerA
  628. #endif // !UNICODE
  629. WINUSERAPI
  630. DWORD
  631. WINAPI
  632. CharLowerBuffA(
  633.     IN OUT LPSTR lpsz,
  634.     IN DWORD cchLength);
  635. WINUSERAPI
  636. DWORD
  637. WINAPI
  638. CharLowerBuffW(
  639.     IN OUT LPWSTR lpsz,
  640.     IN DWORD cchLength);
  641. #ifdef UNICODE
  642. #define CharLowerBuff  CharLowerBuffW
  643. #else
  644. #define CharLowerBuff  CharLowerBuffA
  645. #endif // !UNICODE
  646. WINUSERAPI
  647. LPSTR
  648. WINAPI
  649. CharNextA(
  650.     IN LPCSTR lpsz);
  651. WINUSERAPI
  652. LPWSTR
  653. WINAPI
  654. CharNextW(
  655.     IN LPCWSTR lpsz);
  656. #ifdef UNICODE
  657. #define CharNext  CharNextW
  658. #else
  659. #define CharNext  CharNextA
  660. #endif // !UNICODE
  661. WINUSERAPI
  662. LPSTR
  663. WINAPI
  664. CharPrevA(
  665.     IN LPCSTR lpszStart,
  666.     IN LPCSTR lpszCurrent);
  667. WINUSERAPI
  668. LPWSTR
  669. WINAPI
  670. CharPrevW(
  671.     IN LPCWSTR lpszStart,
  672.     IN LPCWSTR lpszCurrent);
  673. #ifdef UNICODE
  674. #define CharPrev  CharPrevW
  675. #else
  676. #define CharPrev  CharPrevA
  677. #endif // !UNICODE
  678. #if(WINVER >= 0x0400)
  679. WINUSERAPI
  680. LPSTR
  681. WINAPI
  682. CharNextExA(
  683.      IN WORD CodePage,
  684.      IN LPCSTR lpCurrentChar,
  685.      IN DWORD dwFlags);
  686. WINUSERAPI
  687. LPSTR
  688. WINAPI
  689. CharPrevExA(
  690.      IN WORD CodePage,
  691.      IN LPCSTR lpStart,
  692.      IN LPCSTR lpCurrentChar,
  693.      IN DWORD dwFlags);
  694. #endif /* WINVER >= 0x0400 */
  695. /*
  696.  * Compatibility defines for character translation routines
  697.  */
  698. #define AnsiToOem CharToOemA
  699. #define OemToAnsi OemToCharA
  700. #define AnsiToOemBuff CharToOemBuffA
  701. #define OemToAnsiBuff OemToCharBuffA
  702. #define AnsiUpper CharUpperA
  703. #define AnsiUpperBuff CharUpperBuffA
  704. #define AnsiLower CharLowerA
  705. #define AnsiLowerBuff CharLowerBuffA
  706. #define AnsiNext CharNextA
  707. #define AnsiPrev CharPrevA
  708. #ifndef  NOLANGUAGE
  709. /*
  710.  * Language dependent Routines
  711.  */
  712. WINUSERAPI
  713. BOOL
  714. WINAPI
  715. IsCharAlphaA(
  716.     IN CHAR ch);
  717. WINUSERAPI
  718. BOOL
  719. WINAPI
  720. IsCharAlphaW(
  721.     IN WCHAR ch);
  722. #ifdef UNICODE
  723. #define IsCharAlpha  IsCharAlphaW
  724. #else
  725. #define IsCharAlpha  IsCharAlphaA
  726. #endif // !UNICODE
  727. WINUSERAPI
  728. BOOL
  729. WINAPI
  730. IsCharAlphaNumericA(
  731.     IN CHAR ch);
  732. WINUSERAPI
  733. BOOL
  734. WINAPI
  735. IsCharAlphaNumericW(
  736.     IN WCHAR ch);
  737. #ifdef UNICODE
  738. #define IsCharAlphaNumeric  IsCharAlphaNumericW
  739. #else
  740. #define IsCharAlphaNumeric  IsCharAlphaNumericA
  741. #endif // !UNICODE
  742. WINUSERAPI
  743. BOOL
  744. WINAPI
  745. IsCharUpperA(
  746.     IN CHAR ch);
  747. WINUSERAPI
  748. BOOL
  749. WINAPI
  750. IsCharUpperW(
  751.     IN WCHAR ch);
  752. #ifdef UNICODE
  753. #define IsCharUpper  IsCharUpperW
  754. #else
  755. #define IsCharUpper  IsCharUpperA
  756. #endif // !UNICODE
  757. WINUSERAPI
  758. BOOL
  759. WINAPI
  760. IsCharLowerA(
  761.     IN CHAR ch);
  762. WINUSERAPI
  763. BOOL
  764. WINAPI
  765. IsCharLowerW(
  766.     IN WCHAR ch);
  767. #ifdef UNICODE
  768. #define IsCharLower  IsCharLowerW
  769. #else
  770. #define IsCharLower  IsCharLowerA
  771. #endif // !UNICODE
  772. #endif  /* !NOLANGUAGE */
  773. WINUSERAPI
  774. HWND
  775. WINAPI
  776. SetFocus(
  777.     IN HWND hWnd);
  778. WINUSERAPI
  779. HWND
  780. WINAPI
  781. GetActiveWindow(
  782.     VOID);
  783. WINUSERAPI
  784. HWND
  785. WINAPI
  786. GetFocus(
  787.     VOID);
  788. WINUSERAPI
  789. UINT
  790. WINAPI
  791. GetKBCodePage(
  792.     VOID);
  793. WINUSERAPI
  794. SHORT
  795. WINAPI
  796. GetKeyState(
  797.     IN int nVirtKey);
  798. WINUSERAPI
  799. SHORT
  800. WINAPI
  801. GetAsyncKeyState(
  802.     IN int vKey);
  803. WINUSERAPI
  804. BOOL
  805. WINAPI
  806. GetKeyboardState(
  807.     OUT PBYTE lpKeyState);
  808. WINUSERAPI
  809. BOOL
  810. WINAPI
  811. SetKeyboardState(
  812.     IN LPBYTE lpKeyState);
  813. WINUSERAPI
  814. int
  815. WINAPI
  816. GetKeyNameTextA(
  817.     IN LONG lParam,
  818.     OUT LPSTR lpString,
  819.     IN int nSize
  820.     );
  821. WINUSERAPI
  822. int
  823. WINAPI
  824. GetKeyNameTextW(
  825.     IN LONG lParam,
  826.     OUT LPWSTR lpString,
  827.     IN int nSize
  828.     );
  829. #ifdef UNICODE
  830. #define GetKeyNameText  GetKeyNameTextW
  831. #else
  832. #define GetKeyNameText  GetKeyNameTextA
  833. #endif // !UNICODE
  834. WINUSERAPI
  835. int
  836. WINAPI
  837. GetKeyboardType(
  838.     IN int nTypeFlag);
  839. WINUSERAPI
  840. int
  841. WINAPI
  842. ToAscii(
  843.     IN UINT uVirtKey,
  844.     IN UINT uScanCode,
  845.     IN CONST BYTE *lpKeyState,
  846.     OUT LPWORD lpChar,
  847.     IN UINT uFlags);
  848. #if(WINVER >= 0x0400)
  849. WINUSERAPI
  850. int
  851. WINAPI
  852. ToAsciiEx(
  853.     IN UINT uVirtKey,
  854.     IN UINT uScanCode,
  855.     IN CONST BYTE *lpKeyState,
  856.     OUT LPWORD lpChar,
  857.     IN UINT uFlags,
  858.     IN HKL dwhkl);
  859. #endif /* WINVER >= 0x0400 */
  860. WINUSERAPI
  861. int
  862. WINAPI
  863. ToUnicode(
  864.     IN UINT wVirtKey,
  865.     IN UINT wScanCode,
  866.     IN CONST BYTE *lpKeyState,
  867.     OUT LPWSTR pwszBuff,
  868.     IN int cchBuff,
  869.     IN UINT wFlags);
  870. WINUSERAPI
  871. DWORD
  872. WINAPI
  873. OemKeyScan(
  874.     IN WORD wOemChar);
  875. WINUSERAPI
  876. SHORT
  877. WINAPI
  878. VkKeyScanA(
  879.     IN CHAR ch);
  880. WINUSERAPI
  881. SHORT
  882. WINAPI
  883. VkKeyScanW(
  884.     IN WCHAR ch);
  885. #ifdef UNICODE
  886. #define VkKeyScan  VkKeyScanW
  887. #else
  888. #define VkKeyScan  VkKeyScanA
  889. #endif // !UNICODE
  890. #if(WINVER >= 0x0400)
  891. WINUSERAPI
  892. SHORT
  893. WINAPI
  894. VkKeyScanExA(
  895.     IN CHAR  ch,
  896.     IN HKL   dwhkl);
  897. WINUSERAPI
  898. SHORT
  899. WINAPI
  900. VkKeyScanExW(
  901.     IN WCHAR  ch,
  902.     IN HKL   dwhkl);
  903. #ifdef UNICODE
  904. #define VkKeyScanEx  VkKeyScanExW
  905. #else
  906. #define VkKeyScanEx  VkKeyScanExA
  907. #endif // !UNICODE
  908. #endif /* WINVER >= 0x0400 */
  909. #define KEYEVENTF_EXTENDEDKEY 0x0001
  910. #define KEYEVENTF_KEYUP       0x0002
  911. #if(_WIN32_WINNT >= 0x0500)
  912. #define KEYEVENTF_UNICODE     0x0004
  913. #define KEYEVENTF_SCANCODE    0x0008
  914. #endif /* _WIN32_WINNT >= 0x0500 */
  915. WINUSERAPI
  916. VOID
  917. WINAPI
  918. keybd_event(
  919.     IN BYTE bVk,
  920.     IN BYTE bScan,
  921.     IN DWORD dwFlags,
  922.     IN ULONG_PTR dwExtraInfo);
  923. #define MOUSEEVENTF_MOVE        0x0001 /* mouse move */
  924. #define MOUSEEVENTF_LEFTDOWN    0x0002 /* left button down */
  925. #define MOUSEEVENTF_LEFTUP      0x0004 /* left button up */
  926. #define MOUSEEVENTF_RIGHTDOWN   0x0008 /* right button down */
  927. #define MOUSEEVENTF_RIGHTUP     0x0010 /* right button up */
  928. #define MOUSEEVENTF_MIDDLEDOWN  0x0020 /* middle button down */
  929. #define MOUSEEVENTF_MIDDLEUP    0x0040 /* middle button up */
  930. #define MOUSEEVENTF_XDOWN       0x0080 /* x button down */
  931. #define MOUSEEVENTF_XUP         0x0100 /* x button down */
  932. #define MOUSEEVENTF_WHEEL       0x0800 /* wheel button rolled */
  933. #define MOUSEEVENTF_VIRTUALDESK 0x4000 /* map to entire virtual desktop */
  934. #define MOUSEEVENTF_ABSOLUTE    0x8000 /* absolute move */
  935. WINUSERAPI
  936. VOID
  937. WINAPI
  938. mouse_event(
  939.     IN DWORD dwFlags,
  940.     IN DWORD dx,
  941.     IN DWORD dy,
  942.     IN DWORD dwData,
  943.     IN ULONG_PTR dwExtraInfo);
  944. #if (_WIN32_WINNT > 0x0400)
  945. typedef struct tagMOUSEINPUT {
  946.     LONG    dx;
  947.     LONG    dy;
  948.     DWORD   mouseData;
  949.     DWORD   dwFlags;
  950.     DWORD   time;
  951.     ULONG_PTR dwExtraInfo;
  952. } MOUSEINPUT, *PMOUSEINPUT, FAR* LPMOUSEINPUT;
  953. typedef struct tagKEYBDINPUT {
  954.     WORD    wVk;
  955.     WORD    wScan;
  956.     DWORD   dwFlags;
  957.     DWORD   time;
  958.     ULONG_PTR dwExtraInfo;
  959. } KEYBDINPUT, *PKEYBDINPUT, FAR* LPKEYBDINPUT;
  960. typedef struct tagHARDWAREINPUT {
  961.     DWORD   uMsg;
  962.     WORD    wParamL;
  963.     WORD    wParamH;
  964. } HARDWAREINPUT, *PHARDWAREINPUT, FAR* LPHARDWAREINPUT;
  965. #define INPUT_MOUSE     0
  966. #define INPUT_KEYBOARD  1
  967. #define INPUT_HARDWARE  2
  968. typedef struct tagINPUT {
  969.     DWORD   type;
  970.     union
  971.     {
  972.         MOUSEINPUT      mi;
  973.         KEYBDINPUT      ki;
  974.         HARDWAREINPUT   hi;
  975.     };
  976. } INPUT, *PINPUT, FAR* LPINPUT;
  977. WINUSERAPI
  978. UINT
  979. WINAPI
  980. SendInput(
  981.     IN UINT    cInputs,     // number of input in the array
  982.     IN LPINPUT pInputs,     // array of inputs
  983.     IN int     cbSize);     // sizeof(INPUT)
  984. #endif // (_WIN32_WINNT > 0x0400)
  985. #if(_WIN32_WINNT >= 0x0500)
  986. typedef struct tagLASTINPUTINFO {
  987.     UINT cbSize;
  988.     DWORD dwTime;
  989. } LASTINPUTINFO, * PLASTINPUTINFO;
  990. WINUSERAPI
  991. BOOL
  992. WINAPI
  993. GetLastInputInfo(
  994.     OUT PLASTINPUTINFO plii);
  995. #endif /* _WIN32_WINNT >= 0x0500 */
  996. WINUSERAPI
  997. UINT
  998. WINAPI
  999. MapVirtualKeyA(
  1000.     IN UINT uCode,
  1001.     IN UINT uMapType);
  1002. WINUSERAPI
  1003. UINT
  1004. WINAPI
  1005. MapVirtualKeyW(
  1006.     IN UINT uCode,
  1007.     IN UINT uMapType);
  1008. #ifdef UNICODE
  1009. #define MapVirtualKey  MapVirtualKeyW
  1010. #else
  1011. #define MapVirtualKey  MapVirtualKeyA
  1012. #endif // !UNICODE
  1013. #if(WINVER >= 0x0400)
  1014. WINUSERAPI
  1015. UINT
  1016. WINAPI
  1017. MapVirtualKeyExA(
  1018.     IN UINT uCode,
  1019.     IN UINT uMapType,
  1020.     IN HKL dwhkl);
  1021. WINUSERAPI
  1022. UINT
  1023. WINAPI
  1024. MapVirtualKeyExW(
  1025.     IN UINT uCode,
  1026.     IN UINT uMapType,
  1027.     IN HKL dwhkl);
  1028. #ifdef UNICODE
  1029. #define MapVirtualKeyEx  MapVirtualKeyExW
  1030. #else
  1031. #define MapVirtualKeyEx  MapVirtualKeyExA
  1032. #endif // !UNICODE
  1033. #endif /* WINVER >= 0x0400 */
  1034. WINUSERAPI
  1035. BOOL
  1036. WINAPI
  1037. GetInputState(
  1038.     VOID);
  1039. WINUSERAPI
  1040. DWORD
  1041. WINAPI
  1042. GetQueueStatus(
  1043.     IN UINT flags);
  1044. WINUSERAPI
  1045. HWND
  1046. WINAPI
  1047. GetCapture(
  1048.     VOID);
  1049. WINUSERAPI
  1050. HWND
  1051. WINAPI
  1052. SetCapture(
  1053.     IN HWND hWnd);
  1054. WINUSERAPI
  1055. BOOL
  1056. WINAPI
  1057. ReleaseCapture(
  1058.     VOID);
  1059. WINUSERAPI
  1060. DWORD
  1061. WINAPI
  1062. MsgWaitForMultipleObjects(
  1063.     IN DWORD nCount,
  1064.     IN CONST HANDLE *pHandles,
  1065.     IN BOOL fWaitAll,
  1066.     IN DWORD dwMilliseconds,
  1067.     IN DWORD dwWakeMask);
  1068. WINUSERAPI
  1069. DWORD
  1070. WINAPI
  1071. MsgWaitForMultipleObjectsEx(
  1072.     IN DWORD nCount,
  1073.     IN CONST HANDLE *pHandles,
  1074.     IN DWORD dwMilliseconds,
  1075.     IN DWORD dwWakeMask,
  1076.     IN DWORD dwFlags);
  1077. #define MWMO_WAITALL        0x0001
  1078. #define MWMO_ALERTABLE      0x0002
  1079. #define MWMO_INPUTAVAILABLE 0x0004
  1080. /*
  1081.  * Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects()
  1082.  */
  1083. #define QS_KEY              0x0001
  1084. #define QS_MOUSEMOVE        0x0002
  1085. #define QS_MOUSEBUTTON      0x0004
  1086. #define QS_POSTMESSAGE      0x0008
  1087. #define QS_TIMER            0x0010
  1088. #define QS_PAINT            0x0020
  1089. #define QS_SENDMESSAGE      0x0040
  1090. #define QS_HOTKEY           0x0080
  1091. #define QS_ALLPOSTMESSAGE   0x0100
  1092. #if(_WIN32_WINNT >= 0x0501)
  1093. #define QS_RAWINPUT         0x0400
  1094. #endif /* _WIN32_WINNT >= 0x0501 */
  1095. #define QS_MOUSE           (QS_MOUSEMOVE     | 
  1096.                             QS_MOUSEBUTTON)
  1097. #if (_WIN32_WINNT >= 0x0501)
  1098. #define QS_INPUT           (QS_MOUSE         | 
  1099.                             QS_KEY           | 
  1100.                             QS_RAWINPUT)
  1101. #else
  1102. #define QS_INPUT           (QS_MOUSE         | 
  1103.                             QS_KEY)
  1104. #endif // (_WIN32_WINNT >= 0x0501)
  1105. #define QS_ALLEVENTS       (QS_INPUT         | 
  1106.                             QS_POSTMESSAGE   | 
  1107.                             QS_TIMER         | 
  1108.                             QS_PAINT         | 
  1109.                             QS_HOTKEY)
  1110. #define QS_ALLINPUT        (QS_INPUT         | 
  1111.                             QS_POSTMESSAGE   | 
  1112.                             QS_TIMER         | 
  1113.                             QS_PAINT         | 
  1114.                             QS_HOTKEY        | 
  1115.                             QS_SENDMESSAGE)
  1116. /*
  1117.  * Windows Functions
  1118.  */
  1119. WINUSERAPI
  1120. UINT_PTR
  1121. WINAPI
  1122. SetTimer(
  1123.     IN HWND hWnd,
  1124.     IN UINT_PTR nIDEvent,
  1125.     IN UINT uElapse,
  1126.     IN TIMERPROC lpTimerFunc);
  1127. WINUSERAPI
  1128. BOOL
  1129. WINAPI
  1130. KillTimer(
  1131.     IN HWND hWnd,
  1132.     IN UINT_PTR uIDEvent);
  1133. WINUSERAPI
  1134. BOOL
  1135. WINAPI
  1136. IsWindowUnicode(
  1137.     IN HWND hWnd);
  1138. WINUSERAPI
  1139. BOOL
  1140. WINAPI
  1141. EnableWindow(
  1142.     IN HWND hWnd,
  1143.     IN BOOL bEnable);
  1144. WINUSERAPI
  1145. BOOL
  1146. WINAPI
  1147. IsWindowEnabled(
  1148.     IN HWND hWnd);
  1149. WINUSERAPI
  1150. HACCEL
  1151. WINAPI
  1152. LoadAcceleratorsA(
  1153.     IN HINSTANCE hInstance,
  1154.     IN LPCSTR lpTableName);
  1155. WINUSERAPI
  1156. HACCEL
  1157. WINAPI
  1158. LoadAcceleratorsW(
  1159.     IN HINSTANCE hInstance,
  1160.     IN LPCWSTR lpTableName);
  1161. #ifdef UNICODE
  1162. #define LoadAccelerators  LoadAcceleratorsW
  1163. #else
  1164. #define LoadAccelerators  LoadAcceleratorsA
  1165. #endif // !UNICODE
  1166. WINUSERAPI
  1167. HACCEL
  1168. WINAPI
  1169. CreateAcceleratorTableA(
  1170.     IN LPACCEL, IN int);
  1171. WINUSERAPI
  1172. HACCEL
  1173. WINAPI
  1174. CreateAcceleratorTableW(
  1175.     IN LPACCEL, IN int);
  1176. #ifdef UNICODE
  1177. #define CreateAcceleratorTable  CreateAcceleratorTableW
  1178. #else
  1179. #define CreateAcceleratorTable  CreateAcceleratorTableA
  1180. #endif // !UNICODE
  1181. WINUSERAPI
  1182. BOOL
  1183. WINAPI
  1184. DestroyAcceleratorTable(
  1185.     IN HACCEL hAccel);
  1186. WINUSERAPI
  1187. int
  1188. WINAPI
  1189. CopyAcceleratorTableA(
  1190.     IN HACCEL hAccelSrc,
  1191.     OUT LPACCEL lpAccelDst,
  1192.     IN int cAccelEntries);
  1193. WINUSERAPI
  1194. int
  1195. WINAPI
  1196. CopyAcceleratorTableW(
  1197.     IN HACCEL hAccelSrc,
  1198.     OUT LPACCEL lpAccelDst,
  1199.     IN int cAccelEntries);
  1200. #ifdef UNICODE
  1201. #define CopyAcceleratorTable  CopyAcceleratorTableW
  1202. #else
  1203. #define CopyAcceleratorTable  CopyAcceleratorTableA
  1204. #endif // !UNICODE
  1205. #ifndef NOMSG
  1206. WINUSERAPI
  1207. int
  1208. WINAPI
  1209. TranslateAcceleratorA(
  1210.     IN HWND hWnd,
  1211.     IN HACCEL hAccTable,
  1212.     IN LPMSG lpMsg);
  1213. WINUSERAPI
  1214. int
  1215. WINAPI
  1216. TranslateAcceleratorW(
  1217.     IN HWND hWnd,
  1218.     IN HACCEL hAccTable,
  1219.     IN LPMSG lpMsg);
  1220. #ifdef UNICODE
  1221. #define TranslateAccelerator  TranslateAcceleratorW
  1222. #else
  1223. #define TranslateAccelerator  TranslateAcceleratorA
  1224. #endif // !UNICODE
  1225. #endif /* !NOMSG */
  1226. #ifndef NOSYSMETRICS
  1227. /*
  1228.  * GetSystemMetrics() codes
  1229.  */
  1230. #define SM_CXSCREEN             0
  1231. #define SM_CYSCREEN             1
  1232. #define SM_CXVSCROLL            2
  1233. #define SM_CYHSCROLL            3
  1234. #define SM_CYCAPTION            4
  1235. #define SM_CXBORDER             5
  1236. #define SM_CYBORDER             6
  1237. #define SM_CXDLGFRAME           7
  1238. #define SM_CYDLGFRAME           8
  1239. #define SM_CYVTHUMB             9
  1240. #define SM_CXHTHUMB             10
  1241. #define SM_CXICON               11
  1242. #define SM_CYICON               12
  1243. #define SM_CXCURSOR             13
  1244. #define SM_CYCURSOR             14
  1245. #define SM_CYMENU               15
  1246. #define SM_CXFULLSCREEN         16
  1247. #define SM_CYFULLSCREEN         17
  1248. #define SM_CYKANJIWINDOW        18
  1249. #define SM_MOUSEPRESENT         19
  1250. #define SM_CYVSCROLL            20
  1251. #define SM_CXHSCROLL            21
  1252. #define SM_DEBUG                22
  1253. #define SM_SWAPBUTTON           23
  1254. #define SM_RESERVED1            24
  1255. #define SM_RESERVED2            25
  1256. #define SM_RESERVED3            26
  1257. #define SM_RESERVED4            27
  1258. #define SM_CXMIN                28
  1259. #define SM_CYMIN                29
  1260. #define SM_CXSIZE               30
  1261. #define SM_CYSIZE               31
  1262. #define SM_CXFRAME              32
  1263. #define SM_CYFRAME              33
  1264. #define SM_CXMINTRACK           34
  1265. #define SM_CYMINTRACK           35
  1266. #define SM_CXDOUBLECLK          36
  1267. #define SM_CYDOUBLECLK          37
  1268. #define SM_CXICONSPACING        38
  1269. #define SM_CYICONSPACING        39
  1270. #define SM_MENUDROPALIGNMENT    40
  1271. #define SM_PENWINDOWS           41
  1272. #define SM_DBCSENABLED          42
  1273. #define SM_CMOUSEBUTTONS        43
  1274. #if(WINVER >= 0x0400)
  1275. #define SM_CXFIXEDFRAME           SM_CXDLGFRAME  /* ;win40 name change */
  1276. #define SM_CYFIXEDFRAME           SM_CYDLGFRAME  /* ;win40 name change */
  1277. #define SM_CXSIZEFRAME            SM_CXFRAME     /* ;win40 name change */
  1278. #define SM_CYSIZEFRAME            SM_CYFRAME     /* ;win40 name change */
  1279. #define SM_SECURE               44
  1280. #define SM_CXEDGE               45
  1281. #define SM_CYEDGE               46
  1282. #define SM_CXMINSPACING         47
  1283. #define SM_CYMINSPACING         48
  1284. #define SM_CXSMICON             49
  1285. #define SM_CYSMICON             50
  1286. #define SM_CYSMCAPTION          51
  1287. #define SM_CXSMSIZE             52
  1288. #define SM_CYSMSIZE             53
  1289. #define SM_CXMENUSIZE           54
  1290. #define SM_CYMENUSIZE           55
  1291. #define SM_ARRANGE              56
  1292. #define SM_CXMINIMIZED          57
  1293. #define SM_CYMINIMIZED          58
  1294. #define SM_CXMAXTRACK           59
  1295. #define SM_CYMAXTRACK           60
  1296. #define SM_CXMAXIMIZED          61
  1297. #define SM_CYMAXIMIZED          62
  1298. #define SM_NETWORK              63
  1299. #define SM_CLEANBOOT            67
  1300. #define SM_CXDRAG               68
  1301. #define SM_CYDRAG               69
  1302. #endif /* WINVER >= 0x0400 */
  1303. #define SM_SHOWSOUNDS           70
  1304. #if(WINVER >= 0x0400)
  1305. #define SM_CXMENUCHECK          71   /* Use instead of GetMenuCheckMarkDimensions()! */
  1306. #define SM_CYMENUCHECK          72
  1307. #define SM_SLOWMACHINE          73
  1308. #define SM_MIDEASTENABLED       74
  1309. #endif /* WINVER >= 0x0400 */
  1310. #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
  1311. #define SM_MOUSEWHEELPRESENT    75
  1312. #endif
  1313. #if(WINVER >= 0x0500)
  1314. #define SM_XVIRTUALSCREEN       76
  1315. #define SM_YVIRTUALSCREEN       77
  1316. #define SM_CXVIRTUALSCREEN      78
  1317. #define SM_CYVIRTUALSCREEN      79
  1318. #define SM_CMONITORS            80
  1319. #define SM_SAMEDISPLAYFORMAT    81
  1320. #endif /* WINVER >= 0x0500 */
  1321. #if(_WIN32_WINNT >= 0x0500)
  1322. #define SM_IMMENABLED           82
  1323. #endif /* _WIN32_WINNT >= 0x0500 */
  1324. #if(_WIN32_WINNT >= 0x0501)
  1325. #define SM_CXFOCUSBORDER        83
  1326. #define SM_CYFOCUSBORDER        84
  1327. #endif /* _WIN32_WINNT >= 0x0501 */
  1328. #if (WINVER < 0x0500) && (!defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0400))
  1329. #define SM_CMETRICS             76
  1330. #else
  1331. #define SM_CMETRICS             86
  1332. #endif
  1333. #if(WINVER >= 0x0500)
  1334. #define SM_REMOTESESSION        0x1000
  1335. #if(_WIN32_WINNT >= 0x0501)
  1336. #define SM_SHUTTINGDOWN         0x2000
  1337. #endif /* _WIN32_WINNT >= 0x0501 */
  1338. #endif /* WINVER >= 0x0500 */
  1339. WINUSERAPI
  1340. int
  1341. WINAPI
  1342. GetSystemMetrics(
  1343.     IN int nIndex);
  1344. #endif /* !NOSYSMETRICS */
  1345. #ifndef NOMENUS
  1346. WINUSERAPI
  1347. HMENU
  1348. WINAPI
  1349. LoadMenuA(
  1350.     IN HINSTANCE hInstance,
  1351.     IN LPCSTR lpMenuName);
  1352. WINUSERAPI
  1353. HMENU
  1354. WINAPI
  1355. LoadMenuW(
  1356.     IN HINSTANCE hInstance,
  1357.     IN LPCWSTR lpMenuName);
  1358. #ifdef UNICODE
  1359. #define LoadMenu  LoadMenuW
  1360. #else
  1361. #define LoadMenu  LoadMenuA
  1362. #endif // !UNICODE
  1363. WINUSERAPI
  1364. HMENU
  1365. WINAPI
  1366. LoadMenuIndirectA(
  1367.     IN CONST MENUTEMPLATEA *lpMenuTemplate);
  1368. WINUSERAPI
  1369. HMENU
  1370. WINAPI
  1371. LoadMenuIndirectW(
  1372.     IN CONST MENUTEMPLATEW *lpMenuTemplate);
  1373. #ifdef UNICODE
  1374. #define LoadMenuIndirect  LoadMenuIndirectW
  1375. #else
  1376. #define LoadMenuIndirect  LoadMenuIndirectA
  1377. #endif // !UNICODE
  1378. WINUSERAPI
  1379. HMENU
  1380. WINAPI
  1381. GetMenu(
  1382.     IN HWND hWnd);
  1383. WINUSERAPI
  1384. BOOL
  1385. WINAPI
  1386. SetMenu(
  1387.     IN HWND hWnd,
  1388.     IN HMENU hMenu);
  1389. WINUSERAPI
  1390. BOOL
  1391. WINAPI
  1392. ChangeMenuA(
  1393.     IN HMENU hMenu,
  1394.     IN UINT cmd,
  1395.     IN LPCSTR lpszNewItem,
  1396.     IN UINT cmdInsert,
  1397.     IN UINT flags);
  1398. WINUSERAPI
  1399. BOOL
  1400. WINAPI
  1401. ChangeMenuW(
  1402.     IN HMENU hMenu,
  1403.     IN UINT cmd,
  1404.     IN LPCWSTR lpszNewItem,
  1405.     IN UINT cmdInsert,
  1406.     IN UINT flags);
  1407. #ifdef UNICODE
  1408. #define ChangeMenu  ChangeMenuW
  1409. #else
  1410. #define ChangeMenu  ChangeMenuA
  1411. #endif // !UNICODE
  1412. WINUSERAPI
  1413. BOOL
  1414. WINAPI
  1415. HiliteMenuItem(
  1416.     IN HWND hWnd,
  1417.     IN HMENU hMenu,
  1418.     IN UINT uIDHiliteItem,
  1419.     IN UINT uHilite);
  1420. WINUSERAPI
  1421. int
  1422. WINAPI
  1423. GetMenuStringA(
  1424.     IN HMENU hMenu,
  1425.     IN UINT uIDItem,
  1426.     OUT LPSTR lpString,
  1427.     IN int nMaxCount,
  1428.     IN UINT uFlag);
  1429. WINUSERAPI
  1430. int
  1431. WINAPI
  1432. GetMenuStringW(
  1433.     IN HMENU hMenu,
  1434.     IN UINT uIDItem,
  1435.     OUT LPWSTR lpString,
  1436.     IN int nMaxCount,
  1437.     IN UINT uFlag);
  1438. #ifdef UNICODE
  1439. #define GetMenuString  GetMenuStringW
  1440. #else
  1441. #define GetMenuString  GetMenuStringA
  1442. #endif // !UNICODE
  1443. WINUSERAPI
  1444. UINT
  1445. WINAPI
  1446. GetMenuState(
  1447.     IN HMENU hMenu,
  1448.     IN UINT uId,
  1449.     IN UINT uFlags);
  1450. WINUSERAPI
  1451. BOOL
  1452. WINAPI
  1453. DrawMenuBar(
  1454.     IN HWND hWnd);
  1455. #if(_WIN32_WINNT >= 0x0501)
  1456. #define PMB_ACTIVE      0x00000001
  1457. #endif /* _WIN32_WINNT >= 0x0501 */
  1458. WINUSERAPI
  1459. HMENU
  1460. WINAPI
  1461. GetSystemMenu(
  1462.     IN HWND hWnd,
  1463.     IN BOOL bRevert);
  1464. WINUSERAPI
  1465. HMENU
  1466. WINAPI
  1467. CreateMenu(
  1468.     VOID);
  1469. WINUSERAPI
  1470. HMENU
  1471. WINAPI
  1472. CreatePopupMenu(
  1473.     VOID);
  1474. WINUSERAPI
  1475. BOOL
  1476. WINAPI
  1477. DestroyMenu(
  1478.     IN HMENU hMenu);
  1479. WINUSERAPI
  1480. DWORD
  1481. WINAPI
  1482. CheckMenuItem(
  1483.     IN HMENU hMenu,
  1484.     IN UINT uIDCheckItem,
  1485.     IN UINT uCheck);
  1486. WINUSERAPI
  1487. BOOL
  1488. WINAPI
  1489. EnableMenuItem(
  1490.     IN HMENU hMenu,
  1491.     IN UINT uIDEnableItem,
  1492.     IN UINT uEnable);
  1493. WINUSERAPI
  1494. HMENU
  1495. WINAPI
  1496. GetSubMenu(
  1497.     IN HMENU hMenu,
  1498.     IN int nPos);
  1499. WINUSERAPI
  1500. UINT
  1501. WINAPI
  1502. GetMenuItemID(
  1503.     IN HMENU hMenu,
  1504.     IN int nPos);
  1505. WINUSERAPI
  1506. int
  1507. WINAPI
  1508. GetMenuItemCount(
  1509.     IN HMENU hMenu);
  1510. WINUSERAPI
  1511. BOOL
  1512. WINAPI
  1513. InsertMenuA(
  1514.     IN HMENU hMenu,
  1515.     IN UINT uPosition,
  1516.     IN UINT uFlags,
  1517.     IN UINT_PTR uIDNewItem,
  1518.     IN LPCSTR lpNewItem
  1519.     );
  1520. WINUSERAPI
  1521. BOOL
  1522. WINAPI
  1523. InsertMenuW(
  1524.     IN HMENU hMenu,
  1525.     IN UINT uPosition,
  1526.     IN UINT uFlags,
  1527.     IN UINT_PTR uIDNewItem,
  1528.     IN LPCWSTR lpNewItem
  1529.     );
  1530. #ifdef UNICODE
  1531. #define InsertMenu  InsertMenuW
  1532. #else
  1533. #define InsertMenu  InsertMenuA
  1534. #endif // !UNICODE
  1535. WINUSERAPI
  1536. BOOL
  1537. WINAPI
  1538. AppendMenuA(
  1539.     IN HMENU hMenu,
  1540.     IN UINT uFlags,
  1541.     IN UINT_PTR uIDNewItem,
  1542.     IN LPCSTR lpNewItem
  1543.     );
  1544. WINUSERAPI
  1545. BOOL
  1546. WINAPI
  1547. AppendMenuW(
  1548.     IN HMENU hMenu,
  1549.     IN UINT uFlags,
  1550.     IN UINT_PTR uIDNewItem,
  1551.     IN LPCWSTR lpNewItem
  1552.     );
  1553. #ifdef UNICODE
  1554. #define AppendMenu  AppendMenuW
  1555. #else
  1556. #define AppendMenu  AppendMenuA
  1557. #endif // !UNICODE
  1558. WINUSERAPI
  1559. BOOL
  1560. WINAPI
  1561. ModifyMenuA(
  1562.     IN HMENU hMnu,
  1563.     IN UINT uPosition,
  1564.     IN UINT uFlags,
  1565.     IN UINT_PTR uIDNewItem,
  1566.     IN LPCSTR lpNewItem
  1567.     );
  1568. WINUSERAPI
  1569. BOOL
  1570. WINAPI
  1571. ModifyMenuW(
  1572.     IN HMENU hMnu,
  1573.     IN UINT uPosition,
  1574.     IN UINT uFlags,
  1575.     IN UINT_PTR uIDNewItem,
  1576.     IN LPCWSTR lpNewItem
  1577.     );
  1578. #ifdef UNICODE
  1579. #define ModifyMenu  ModifyMenuW
  1580. #else
  1581. #define ModifyMenu  ModifyMenuA
  1582. #endif // !UNICODE
  1583. WINUSERAPI
  1584. BOOL
  1585. WINAPI RemoveMenu(
  1586.     IN HMENU hMenu,
  1587.     IN UINT uPosition,
  1588.     IN UINT uFlags);
  1589. WINUSERAPI
  1590. BOOL
  1591. WINAPI
  1592. DeleteMenu(
  1593.     IN HMENU hMenu,
  1594.     IN UINT uPosition,
  1595.     IN UINT uFlags);
  1596. WINUSERAPI
  1597. BOOL
  1598. WINAPI
  1599. SetMenuItemBitmaps(
  1600.     IN HMENU hMenu,
  1601.     IN UINT uPosition,
  1602.     IN UINT uFlags,
  1603.     IN HBITMAP hBitmapUnchecked,
  1604.     IN HBITMAP hBitmapChecked);
  1605. WINUSERAPI
  1606. LONG
  1607. WINAPI
  1608. GetMenuCheckMarkDimensions(
  1609.     VOID);
  1610. WINUSERAPI
  1611. BOOL
  1612. WINAPI
  1613. TrackPopupMenu(
  1614.     IN HMENU hMenu,
  1615.     IN UINT uFlags,
  1616.     IN int x,
  1617.     IN int y,
  1618.     IN int nReserved,
  1619.     IN HWND hWnd,
  1620.     IN CONST RECT *prcRect);
  1621. #if(WINVER >= 0x0400)
  1622. /* return codes for WM_MENUCHAR */
  1623. #define MNC_IGNORE  0
  1624. #define MNC_CLOSE   1
  1625. #define MNC_EXECUTE 2
  1626. #define MNC_SELECT  3
  1627. typedef struct tagTPMPARAMS
  1628. {
  1629.     UINT    cbSize;     /* Size of structure */
  1630.     RECT    rcExclude;  /* Screen coordinates of rectangle to exclude when positioning */
  1631. }   TPMPARAMS;
  1632. typedef TPMPARAMS FAR *LPTPMPARAMS;
  1633. WINUSERAPI
  1634. BOOL
  1635. WINAPI
  1636. TrackPopupMenuEx(
  1637.     IN HMENU,
  1638.     IN UINT,
  1639.     IN int,
  1640.     IN int,
  1641.     IN HWND,
  1642.     IN LPTPMPARAMS);
  1643. #endif /* WINVER >= 0x0400 */
  1644. #if(WINVER >= 0x0500)
  1645. #define MNS_NOCHECK         0x80000000
  1646. #define MNS_MODELESS        0x40000000
  1647. #define MNS_DRAGDROP        0x20000000
  1648. #define MNS_AUTODISMISS     0x10000000
  1649. #define MNS_NOTIFYBYPOS     0x08000000
  1650. #define MNS_CHECKORBMP      0x04000000
  1651. #define MIM_MAXHEIGHT               0x00000001
  1652. #define MIM_BACKGROUND              0x00000002
  1653. #define MIM_HELPID                  0x00000004
  1654. #define MIM_MENUDATA                0x00000008
  1655. #define MIM_STYLE                   0x00000010
  1656. #define MIM_APPLYTOSUBMENUS         0x80000000
  1657. typedef struct tagMENUINFO
  1658. {
  1659.     DWORD   cbSize;
  1660.     DWORD   fMask;
  1661.     DWORD   dwStyle;
  1662.     UINT    cyMax;
  1663.     HBRUSH  hbrBack;
  1664.     DWORD   dwContextHelpID;
  1665.     ULONG_PTR dwMenuData;
  1666. }   MENUINFO, FAR *LPMENUINFO;
  1667. typedef MENUINFO CONST FAR *LPCMENUINFO;
  1668. WINUSERAPI
  1669. BOOL
  1670. WINAPI
  1671. GetMenuInfo(
  1672.     IN HMENU,
  1673.     OUT LPMENUINFO);
  1674. WINUSERAPI
  1675. BOOL
  1676. WINAPI
  1677. SetMenuInfo(
  1678.     IN HMENU,
  1679.     IN LPCMENUINFO);
  1680. WINUSERAPI
  1681. BOOL
  1682. WINAPI
  1683. EndMenu(
  1684.         VOID);
  1685. /*
  1686.  * WM_MENUDRAG return values.
  1687.  */
  1688. #define MND_CONTINUE       0
  1689. #define MND_ENDMENU        1
  1690. typedef struct tagMENUGETOBJECTINFO
  1691. {
  1692.     DWORD dwFlags;
  1693.     UINT uPos;
  1694.     HMENU hmenu;
  1695.     PVOID riid;
  1696.     PVOID pvObj;
  1697. } MENUGETOBJECTINFO, * PMENUGETOBJECTINFO;
  1698. /*
  1699.  * MENUGETOBJECTINFO dwFlags values
  1700.  */
  1701. #define MNGOF_TOPGAP         0x00000001
  1702. #define MNGOF_BOTTOMGAP      0x00000002
  1703. /*
  1704.  * WM_MENUGETOBJECT return values
  1705.  */
  1706. #define MNGO_NOINTERFACE     0x00000000
  1707. #define MNGO_NOERROR         0x00000001
  1708. #endif /* WINVER >= 0x0500 */
  1709. #if(WINVER >= 0x0400)
  1710. #define MIIM_STATE       0x00000001
  1711. #define MIIM_ID          0x00000002
  1712. #define MIIM_SUBMENU     0x00000004
  1713. #define MIIM_CHECKMARKS  0x00000008
  1714. #define MIIM_TYPE        0x00000010
  1715. #define MIIM_DATA        0x00000020
  1716. #endif /* WINVER >= 0x0400 */
  1717. #if(WINVER >= 0x0500)
  1718. #define MIIM_STRING      0x00000040
  1719. #define MIIM_BITMAP      0x00000080
  1720. #define MIIM_FTYPE       0x00000100
  1721. #define HBMMENU_CALLBACK            ((HBITMAP) -1)
  1722. #define HBMMENU_SYSTEM              ((HBITMAP)  1)
  1723. #define HBMMENU_MBAR_RESTORE        ((HBITMAP)  2)
  1724. #define HBMMENU_MBAR_MINIMIZE       ((HBITMAP)  3)
  1725. #define HBMMENU_MBAR_CLOSE          ((HBITMAP)  5)
  1726. #define HBMMENU_MBAR_CLOSE_D        ((HBITMAP)  6)
  1727. #define HBMMENU_MBAR_MINIMIZE_D     ((HBITMAP)  7)
  1728. #define HBMMENU_POPUP_CLOSE         ((HBITMAP)  8)
  1729. #define HBMMENU_POPUP_RESTORE       ((HBITMAP)  9)
  1730. #define HBMMENU_POPUP_MAXIMIZE      ((HBITMAP) 10)
  1731. #define HBMMENU_POPUP_MINIMIZE      ((HBITMAP) 11)
  1732. #endif /* WINVER >= 0x0500 */
  1733. #if(WINVER >= 0x0400)
  1734. typedef struct tagMENUITEMINFOA
  1735. {
  1736.     UINT     cbSize;
  1737.     UINT     fMask;
  1738.     UINT     fType;         // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
  1739.     UINT     fState;        // used if MIIM_STATE
  1740.     UINT     wID;           // used if MIIM_ID
  1741.     HMENU    hSubMenu;      // used if MIIM_SUBMENU
  1742.     HBITMAP  hbmpChecked;   // used if MIIM_CHECKMARKS
  1743.     HBITMAP  hbmpUnchecked; // used if MIIM_CHECKMARKS
  1744.     ULONG_PTR dwItemData;   // used if MIIM_DATA
  1745.     LPSTR    dwTypeData;    // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  1746.     UINT     cch;           // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  1747. #if(WINVER >= 0x0500)
  1748.     HBITMAP  hbmpItem;      // used if MIIM_BITMAP
  1749. #endif /* WINVER >= 0x0500 */
  1750. }   MENUITEMINFOA, FAR *LPMENUITEMINFOA;
  1751. typedef struct tagMENUITEMINFOW
  1752. {
  1753.     UINT     cbSize;
  1754.     UINT     fMask;
  1755.     UINT     fType;         // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
  1756.     UINT     fState;        // used if MIIM_STATE
  1757.     UINT     wID;           // used if MIIM_ID
  1758.     HMENU    hSubMenu;      // used if MIIM_SUBMENU
  1759.     HBITMAP  hbmpChecked;   // used if MIIM_CHECKMARKS
  1760.     HBITMAP  hbmpUnchecked; // used if MIIM_CHECKMARKS
  1761.     ULONG_PTR dwItemData;   // used if MIIM_DATA
  1762.     LPWSTR   dwTypeData;    // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  1763.     UINT     cch;           // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  1764. #if(WINVER >= 0x0500)
  1765.     HBITMAP  hbmpItem;      // used if MIIM_BITMAP
  1766. #endif /* WINVER >= 0x0500 */
  1767. }   MENUITEMINFOW, FAR *LPMENUITEMINFOW;
  1768. #ifdef UNICODE
  1769. typedef MENUITEMINFOW MENUITEMINFO;
  1770. typedef LPMENUITEMINFOW LPMENUITEMINFO;
  1771. #else
  1772. typedef MENUITEMINFOA MENUITEMINFO;
  1773. typedef LPMENUITEMINFOA LPMENUITEMINFO;
  1774. #endif // UNICODE
  1775. typedef MENUITEMINFOA CONST FAR *LPCMENUITEMINFOA;
  1776. typedef MENUITEMINFOW CONST FAR *LPCMENUITEMINFOW;
  1777. #ifdef UNICODE
  1778. typedef LPCMENUITEMINFOW LPCMENUITEMINFO;
  1779. #else
  1780. typedef LPCMENUITEMINFOA LPCMENUITEMINFO;
  1781. #endif // UNICODE
  1782. WINUSERAPI
  1783. BOOL
  1784. WINAPI
  1785. InsertMenuItemA(
  1786.     IN HMENU,
  1787.     IN UINT,
  1788.     IN BOOL,
  1789.     IN LPCMENUITEMINFOA
  1790.     );
  1791. WINUSERAPI
  1792. BOOL
  1793. WINAPI
  1794. InsertMenuItemW(
  1795.     IN HMENU,
  1796.     IN UINT,
  1797.     IN BOOL,
  1798.     IN LPCMENUITEMINFOW
  1799.     );
  1800. #ifdef UNICODE
  1801. #define InsertMenuItem  InsertMenuItemW
  1802. #else
  1803. #define InsertMenuItem  InsertMenuItemA
  1804. #endif // !UNICODE
  1805. WINUSERAPI
  1806. BOOL
  1807. WINAPI
  1808. GetMenuItemInfoA(
  1809.     IN HMENU,
  1810.     IN UINT,
  1811.     IN BOOL,
  1812.     IN OUT LPMENUITEMINFOA
  1813.     );
  1814. WINUSERAPI
  1815. BOOL
  1816. WINAPI
  1817. GetMenuItemInfoW(
  1818.     IN HMENU,
  1819.     IN UINT,
  1820.     IN BOOL,
  1821.     IN OUT LPMENUITEMINFOW
  1822.     );
  1823. #ifdef UNICODE
  1824. #define GetMenuItemInfo  GetMenuItemInfoW
  1825. #else
  1826. #define GetMenuItemInfo  GetMenuItemInfoA
  1827. #endif // !UNICODE
  1828. WINUSERAPI
  1829. BOOL
  1830. WINAPI
  1831. SetMenuItemInfoA(
  1832.     IN HMENU,
  1833.     IN UINT,
  1834.     IN BOOL,
  1835.     IN LPCMENUITEMINFOA
  1836.     );
  1837. WINUSERAPI
  1838. BOOL
  1839. WINAPI
  1840. SetMenuItemInfoW(
  1841.     IN HMENU,
  1842.     IN UINT,
  1843.     IN BOOL,
  1844.     IN LPCMENUITEMINFOW
  1845.     );
  1846. #ifdef UNICODE
  1847. #define SetMenuItemInfo  SetMenuItemInfoW
  1848. #else
  1849. #define SetMenuItemInfo  SetMenuItemInfoA
  1850. #endif // !UNICODE
  1851. #define GMDI_USEDISABLED    0x0001L
  1852. #define GMDI_GOINTOPOPUPS   0x0002L
  1853. WINUSERAPI UINT    WINAPI GetMenuDefaultItem( IN HMENU hMenu, IN UINT fByPos, IN UINT gmdiFlags);
  1854. WINUSERAPI BOOL    WINAPI SetMenuDefaultItem( IN HMENU hMenu, IN UINT uItem,  IN UINT fByPos);
  1855. WINUSERAPI BOOL    WINAPI GetMenuItemRect( IN HWND hWnd, IN HMENU hMenu, IN UINT uItem, OUT LPRECT lprcItem);
  1856. WINUSERAPI int     WINAPI MenuItemFromPoint( IN HWND hWnd, IN HMENU hMenu, IN POINT ptScreen);
  1857. #endif /* WINVER >= 0x0400 */
  1858. /*
  1859.  * Flags for TrackPopupMenu
  1860.  */
  1861. #define TPM_LEFTBUTTON  0x0000L
  1862. #define TPM_RIGHTBUTTON 0x0002L
  1863. #define TPM_LEFTALIGN   0x0000L
  1864. #define TPM_CENTERALIGN 0x0004L
  1865. #define TPM_RIGHTALIGN  0x0008L
  1866. #if(WINVER >= 0x0400)
  1867. #define TPM_TOPALIGN        0x0000L
  1868. #define TPM_VCENTERALIGN    0x0010L
  1869. #define TPM_BOTTOMALIGN     0x0020L
  1870. #define TPM_HORIZONTAL      0x0000L     /* Horz alignment matters more */
  1871. #define TPM_VERTICAL        0x0040L     /* Vert alignment matters more */
  1872. #define TPM_NONOTIFY        0x0080L     /* Don't send any notification msgs */
  1873. #define TPM_RETURNCMD       0x0100L
  1874. #endif /* WINVER >= 0x0400 */
  1875. #if(WINVER >= 0x0500)
  1876. #define TPM_RECURSE         0x0001L
  1877. #define TPM_HORPOSANIMATION 0x0400L
  1878. #define TPM_HORNEGANIMATION 0x0800L
  1879. #define TPM_VERPOSANIMATION 0x1000L
  1880. #define TPM_VERNEGANIMATION 0x2000L
  1881. #if(_WIN32_WINNT >= 0x0500)
  1882. #define TPM_NOANIMATION     0x4000L
  1883. #endif /* _WIN32_WINNT >= 0x0500 */
  1884. #if(_WIN32_WINNT >= 0x0501)
  1885. #define TPM_LAYOUTRTL       0x8000L
  1886. #endif /* _WIN32_WINNT >= 0x0501 */
  1887. #endif /* WINVER >= 0x0500 */
  1888. #endif /* !NOMENUS */
  1889. #if(WINVER >= 0x0400)
  1890. //
  1891. // Drag-and-drop support
  1892. // Obsolete - use OLE instead
  1893. //
  1894. typedef struct tagDROPSTRUCT
  1895. {
  1896.     HWND    hwndSource;
  1897.     HWND    hwndSink;
  1898.     DWORD   wFmt;
  1899.     ULONG_PTR dwData;
  1900.     POINT   ptDrop;
  1901.     DWORD   dwControlData;
  1902. } DROPSTRUCT, *PDROPSTRUCT, *LPDROPSTRUCT;
  1903. #define DOF_EXECUTABLE      0x8001      // wFmt flags
  1904. #define DOF_DOCUMENT        0x8002
  1905. #define DOF_DIRECTORY       0x8003
  1906. #define DOF_MULTIPLE        0x8004
  1907. #define DOF_PROGMAN         0x0001
  1908. #define DOF_SHELLDATA       0x0002
  1909. #define DO_DROPFILE         0x454C4946L
  1910. #define DO_PRINTFILE        0x544E5250L
  1911. WINUSERAPI
  1912. DWORD
  1913. WINAPI
  1914. DragObject(
  1915.     IN HWND,
  1916.     IN HWND,
  1917.     IN UINT,
  1918.     IN ULONG_PTR,
  1919.     IN HCURSOR);
  1920. WINUSERAPI
  1921. BOOL
  1922. WINAPI
  1923. DragDetect(
  1924.     IN HWND,
  1925.     IN POINT);
  1926. #endif /* WINVER >= 0x0400 */
  1927. WINUSERAPI
  1928. BOOL
  1929. WINAPI
  1930. DrawIcon(
  1931.     IN HDC hDC,
  1932.     IN int X,
  1933.     IN int Y,
  1934.     IN HICON hIcon);
  1935. #ifndef NODRAWTEXT
  1936. /*
  1937.  * DrawText() Format Flags
  1938.  */
  1939. #define DT_TOP                      0x00000000
  1940. #define DT_LEFT                     0x00000000
  1941. #define DT_CENTER                   0x00000001
  1942. #define DT_RIGHT                    0x00000002
  1943. #define DT_VCENTER                  0x00000004
  1944. #define DT_BOTTOM                   0x00000008
  1945. #define DT_WORDBREAK                0x00000010
  1946. #define DT_SINGLELINE               0x00000020
  1947. #define DT_EXPANDTABS               0x00000040
  1948. #define DT_TABSTOP                  0x00000080
  1949. #define DT_NOCLIP                   0x00000100
  1950. #define DT_EXTERNALLEADING          0x00000200
  1951. #define DT_CALCRECT                 0x00000400
  1952. #define DT_NOPREFIX                 0x00000800
  1953. #define DT_INTERNAL                 0x00001000
  1954. #if(WINVER >= 0x0400)
  1955. #define DT_EDITCONTROL              0x00002000
  1956. #define DT_PATH_ELLIPSIS            0x00004000
  1957. #define DT_END_ELLIPSIS             0x00008000
  1958. #define DT_MODIFYSTRING             0x00010000
  1959. #define DT_RTLREADING               0x00020000
  1960. #define DT_WORD_ELLIPSIS            0x00040000
  1961. #if(WINVER >= 0x0500)
  1962. #define DT_NOFULLWIDTHCHARBREAK     0x00080000
  1963. #if(_WIN32_WINNT >= 0x0500)
  1964. #define DT_HIDEPREFIX               0x00100000
  1965. #define DT_PREFIXONLY               0x00200000
  1966. #endif /* _WIN32_WINNT >= 0x0500 */
  1967. #endif /* WINVER >= 0x0500 */
  1968. typedef struct tagDRAWTEXTPARAMS
  1969. {
  1970.     UINT    cbSize;
  1971.     int     iTabLength;
  1972.     int     iLeftMargin;
  1973.     int     iRightMargin;
  1974.     UINT    uiLengthDrawn;
  1975. } DRAWTEXTPARAMS, FAR *LPDRAWTEXTPARAMS;
  1976. #endif /* WINVER >= 0x0400 */
  1977. WINUSERAPI
  1978. int
  1979. WINAPI
  1980. DrawTextA(
  1981.     IN HDC hDC,
  1982.     IN LPCSTR lpString,
  1983.     IN int nCount,
  1984.     IN OUT LPRECT lpRect,
  1985.     IN UINT uFormat);
  1986. WINUSERAPI
  1987. int
  1988. WINAPI
  1989. DrawTextW(
  1990.     IN HDC hDC,
  1991.     IN LPCWSTR lpString,
  1992.     IN int nCount,
  1993.     IN OUT LPRECT lpRect,
  1994.     IN UINT uFormat);
  1995. #ifdef UNICODE
  1996. #define DrawText  DrawTextW
  1997. #else
  1998. #define DrawText  DrawTextA
  1999. #endif // !UNICODE
  2000. #if(WINVER >= 0x0400)
  2001. WINUSERAPI
  2002. int
  2003. WINAPI
  2004. DrawTextExA(
  2005.     IN HDC,
  2006.     IN OUT LPSTR,
  2007.     IN int,
  2008.     IN OUT LPRECT,
  2009.     IN UINT,
  2010.     IN LPDRAWTEXTPARAMS);
  2011. WINUSERAPI
  2012. int
  2013. WINAPI
  2014. DrawTextExW(
  2015.     IN HDC,
  2016.     IN OUT LPWSTR,
  2017.     IN int,
  2018.     IN OUT LPRECT,
  2019.     IN UINT,
  2020.     IN LPDRAWTEXTPARAMS);
  2021. #ifdef UNICODE
  2022. #define DrawTextEx  DrawTextExW
  2023. #else
  2024. #define DrawTextEx  DrawTextExA
  2025. #endif // !UNICODE
  2026. #endif /* WINVER >= 0x0400 */
  2027. #endif /* !NODRAWTEXT */
  2028. WINUSERAPI
  2029. BOOL
  2030. WINAPI
  2031. GrayStringA(
  2032.     IN HDC hDC,
  2033.     IN HBRUSH hBrush,
  2034.     IN GRAYSTRINGPROC lpOutputFunc,
  2035.     IN LPARAM lpData,
  2036.     IN int nCount,
  2037.     IN int X,
  2038.     IN int Y,
  2039.     IN int nWidth,
  2040.     IN int nHeight);
  2041. WINUSERAPI
  2042. BOOL
  2043. WINAPI
  2044. GrayStringW(
  2045.     IN HDC hDC,
  2046.     IN HBRUSH hBrush,
  2047.     IN GRAYSTRINGPROC lpOutputFunc,
  2048.     IN LPARAM lpData,
  2049.     IN int nCount,
  2050.     IN int X,
  2051.     IN int Y,
  2052.     IN int nWidth,
  2053.     IN int nHeight);
  2054. #ifdef UNICODE
  2055. #define GrayString  GrayStringW
  2056. #else
  2057. #define GrayString  GrayStringA
  2058. #endif // !UNICODE
  2059. #if(WINVER >= 0x0400)
  2060. /* Monolithic state-drawing routine */
  2061. /* Image type */
  2062. #define DST_COMPLEX     0x0000
  2063. #define DST_TEXT        0x0001
  2064. #define DST_PREFIXTEXT  0x0002
  2065. #define DST_ICON        0x0003
  2066. #define DST_BITMAP      0x0004
  2067. /* State type */
  2068. #define DSS_NORMAL      0x0000
  2069. #define DSS_UNION       0x0010  /* Gray string appearance */
  2070. #define DSS_DISABLED    0x0020
  2071. #define DSS_MONO        0x0080
  2072. #if(_WIN32_WINNT >= 0x0500)
  2073. #define DSS_HIDEPREFIX  0x0200
  2074. #define DSS_PREFIXONLY  0x0400
  2075. #endif /* _WIN32_WINNT >= 0x0500 */
  2076. #define DSS_RIGHT       0x8000
  2077. WINUSERAPI
  2078. BOOL
  2079. WINAPI
  2080. DrawStateA(
  2081.     IN HDC,
  2082.     IN HBRUSH,
  2083.     IN DRAWSTATEPROC,
  2084.     IN LPARAM,
  2085.     IN WPARAM,
  2086.     IN int,
  2087.     IN int,
  2088.     IN int,
  2089.     IN int,
  2090.     IN UINT);
  2091. WINUSERAPI
  2092. BOOL
  2093. WINAPI
  2094. DrawStateW(
  2095.     IN HDC,
  2096.     IN HBRUSH,
  2097.     IN DRAWSTATEPROC,
  2098.     IN LPARAM,
  2099.     IN WPARAM,
  2100.     IN int,
  2101.     IN int,
  2102.     IN int,
  2103.     IN int,
  2104.     IN UINT);
  2105. #ifdef UNICODE
  2106. #define DrawState  DrawStateW
  2107. #else
  2108. #define DrawState  DrawStateA
  2109. #endif // !UNICODE
  2110. #endif /* WINVER >= 0x0400 */
  2111. WINUSERAPI
  2112. LONG
  2113. WINAPI
  2114. TabbedTextOutA(
  2115.     IN HDC hDC,
  2116.     IN int X,
  2117.     IN int Y,
  2118.     IN LPCSTR lpString,
  2119.     IN int nCount,
  2120.     IN int nTabPositions,
  2121.     IN CONST INT *lpnTabStopPositions,
  2122.     IN int nTabOrigin);
  2123. WINUSERAPI
  2124. LONG
  2125. WINAPI
  2126. TabbedTextOutW(
  2127.     IN HDC hDC,
  2128.     IN int X,
  2129.     IN int Y,
  2130.     IN LPCWSTR lpString,
  2131.     IN int nCount,
  2132.     IN int nTabPositions,
  2133.     IN CONST INT *lpnTabStopPositions,
  2134.     IN int nTabOrigin);
  2135. #ifdef UNICODE
  2136. #define TabbedTextOut  TabbedTextOutW
  2137. #else
  2138. #define TabbedTextOut  TabbedTextOutA
  2139. #endif // !UNICODE
  2140. WINUSERAPI
  2141. DWORD
  2142. WINAPI
  2143. GetTabbedTextExtentA(
  2144.     IN HDC hDC,
  2145.     IN LPCSTR lpString,
  2146.     IN int nCount,
  2147.     IN int nTabPositions,
  2148.     IN CONST INT *lpnTabStopPositions);
  2149. WINUSERAPI
  2150. DWORD
  2151. WINAPI
  2152. GetTabbedTextExtentW(
  2153.     IN HDC hDC,
  2154.     IN LPCWSTR lpString,
  2155.     IN int nCount,
  2156.     IN int nTabPositions,
  2157.     IN CONST INT *lpnTabStopPositions);
  2158. #ifdef UNICODE
  2159. #define GetTabbedTextExtent  GetTabbedTextExtentW
  2160. #else
  2161. #define GetTabbedTextExtent  GetTabbedTextExtentA
  2162. #endif // !UNICODE
  2163. WINUSERAPI
  2164. BOOL
  2165. WINAPI
  2166. UpdateWindow(
  2167.     IN HWND hWnd);
  2168. WINUSERAPI
  2169. HWND
  2170. WINAPI
  2171. SetActiveWindow(
  2172.     IN HWND hWnd);
  2173. WINUSERAPI
  2174. HWND
  2175. WINAPI
  2176. GetForegroundWindow(
  2177.     VOID);
  2178. #if(WINVER >= 0x0400)
  2179. WINUSERAPI
  2180. BOOL
  2181. WINAPI
  2182. PaintDesktop(
  2183.     IN HDC hdc);
  2184. #endif /* WINVER >= 0x0400 */
  2185. WINUSERAPI
  2186. BOOL
  2187. WINAPI
  2188. SetForegroundWindow(
  2189.     IN HWND hWnd);
  2190. #if(_WIN32_WINNT >= 0x0500)
  2191. WINUSERAPI
  2192. BOOL
  2193. WINAPI
  2194. AllowSetForegroundWindow(
  2195.     DWORD dwProcessId);
  2196. #define ASFW_ANY    ((DWORD)-1)
  2197. WINUSERAPI
  2198. BOOL
  2199. WINAPI
  2200. LockSetForegroundWindow(
  2201.     UINT uLockCode);
  2202. #define LSFW_LOCK       1
  2203. #define LSFW_UNLOCK     2
  2204. #endif /* _WIN32_WINNT >= 0x0500 */
  2205. WINUSERAPI
  2206. HWND
  2207. WINAPI
  2208. WindowFromDC(
  2209.     IN HDC hDC);
  2210. WINUSERAPI
  2211. HDC
  2212. WINAPI
  2213. GetDC(
  2214.     IN HWND hWnd);
  2215. WINUSERAPI
  2216. HDC
  2217. WINAPI
  2218. GetDCEx(
  2219.     IN HWND hWnd,
  2220.     IN HRGN hrgnClip,
  2221.     IN DWORD flags);
  2222. /*
  2223.  * GetDCEx() flags
  2224.  */
  2225. #define DCX_WINDOW           0x00000001L
  2226. #define DCX_CACHE            0x00000002L
  2227. #define DCX_NORESETATTRS     0x00000004L
  2228. #define DCX_CLIPCHILDREN     0x00000008L
  2229. #define DCX_CLIPSIBLINGS     0x00000010L
  2230. #define DCX_PARENTCLIP       0x00000020L
  2231. #define DCX_EXCLUDERGN       0x00000040L
  2232. #define DCX_INTERSECTRGN     0x00000080L
  2233. #define DCX_EXCLUDEUPDATE    0x00000100L
  2234. #define DCX_INTERSECTUPDATE  0x00000200L
  2235. #define DCX_LOCKWINDOWUPDATE 0x00000400L
  2236. #define DCX_VALIDATE         0x00200000L
  2237. WINUSERAPI
  2238. HDC
  2239. WINAPI
  2240. GetWindowDC(
  2241.     IN HWND hWnd);
  2242. WINUSERAPI
  2243. int
  2244. WINAPI
  2245. ReleaseDC(
  2246.     IN HWND hWnd,
  2247.     IN HDC hDC);
  2248. WINUSERAPI
  2249. HDC
  2250. WINAPI
  2251. BeginPaint(
  2252.     IN HWND hWnd,
  2253.     OUT LPPAINTSTRUCT lpPaint);
  2254. WINUSERAPI
  2255. BOOL
  2256. WINAPI
  2257. EndPaint(
  2258.     IN HWND hWnd,
  2259.     IN CONST PAINTSTRUCT *lpPaint);
  2260. WINUSERAPI
  2261. BOOL
  2262. WINAPI
  2263. GetUpdateRect(
  2264.     IN HWND hWnd,
  2265.     OUT LPRECT lpRect,
  2266.     IN BOOL bErase);
  2267. WINUSERAPI
  2268. int
  2269. WINAPI
  2270. GetUpdateRgn(
  2271.     IN HWND hWnd,
  2272.     IN HRGN hRgn,
  2273.     IN BOOL bErase);
  2274. WINUSERAPI
  2275. int
  2276. WINAPI
  2277. SetWindowRgn(
  2278.     IN HWND hWnd,
  2279.     IN HRGN hRgn,
  2280.     IN BOOL bRedraw);
  2281. WINUSERAPI
  2282. int
  2283. WINAPI
  2284. GetWindowRgn(
  2285.     IN HWND hWnd,
  2286.     IN HRGN hRgn);
  2287. #if(_WIN32_WINNT >= 0x0501)
  2288. WINUSERAPI
  2289. int
  2290. WINAPI
  2291. GetWindowRgnBox(
  2292.     IN HWND hWnd,
  2293.     OUT LPRECT lprc);
  2294. #endif /* _WIN32_WINNT >= 0x0501 */
  2295. WINUSERAPI
  2296. int
  2297. WINAPI
  2298. ExcludeUpdateRgn(
  2299.     IN HDC hDC,
  2300.     IN HWND hWnd);
  2301. WINUSERAPI
  2302. BOOL
  2303. WINAPI
  2304. InvalidateRect(
  2305.     IN HWND hWnd,
  2306.     IN CONST RECT *lpRect,
  2307.     IN BOOL bErase);
  2308. WINUSERAPI
  2309. BOOL
  2310. WINAPI
  2311. ValidateRect(
  2312.     IN HWND hWnd,
  2313.     IN CONST RECT *lpRect);
  2314. WINUSERAPI
  2315. BOOL
  2316. WINAPI
  2317. InvalidateRgn(
  2318.     IN HWND hWnd,
  2319.     IN HRGN hRgn,
  2320.     IN BOOL bErase);
  2321. WINUSERAPI
  2322. BOOL
  2323. WINAPI
  2324. ValidateRgn(
  2325.     IN HWND hWnd,
  2326.     IN HRGN hRgn);
  2327. WINUSERAPI
  2328. BOOL
  2329. WINAPI
  2330. RedrawWindow(
  2331.     IN HWND hWnd,
  2332.     IN CONST RECT *lprcUpdate,
  2333.     IN HRGN hrgnUpdate,
  2334.     IN UINT flags);
  2335. /*
  2336.  * RedrawWindow() flags
  2337.  */
  2338. #define RDW_INVALIDATE          0x0001
  2339. #define RDW_INTERNALPAINT       0x0002
  2340. #define RDW_ERASE               0x0004
  2341. #define RDW_VALIDATE            0x0008
  2342. #define RDW_NOINTERNALPAINT     0x0010
  2343. #define RDW_NOERASE             0x0020
  2344. #define RDW_NOCHILDREN          0x0040
  2345. #define RDW_ALLCHILDREN         0x0080
  2346. #define RDW_UPDATENOW           0x0100
  2347. #define RDW_ERASENOW            0x0200
  2348. #define RDW_FRAME               0x0400
  2349. #define RDW_NOFRAME             0x0800
  2350. /*
  2351.  * LockWindowUpdate API
  2352.  */
  2353. WINUSERAPI
  2354. BOOL
  2355. WINAPI
  2356. LockWindowUpdate(
  2357.     IN HWND hWndLock);
  2358. WINUSERAPI
  2359. BOOL
  2360. WINAPI
  2361. ScrollWindow(
  2362.     IN HWND hWnd,
  2363.     IN int XAmount,
  2364.     IN int YAmount,
  2365.     IN CONST RECT *lpRect,
  2366.     IN CONST RECT *lpClipRect);
  2367. WINUSERAPI
  2368. BOOL
  2369. WINAPI
  2370. ScrollDC(
  2371.     IN HDC hDC,
  2372.     IN int dx,
  2373.     IN int dy,
  2374.     IN CONST RECT *lprcScroll,
  2375.     IN CONST RECT *lprcClip,
  2376.     IN HRGN hrgnUpdate,
  2377.     OUT LPRECT lprcUpdate);
  2378. WINUSERAPI
  2379. int
  2380. WINAPI
  2381. ScrollWindowEx(
  2382.     IN HWND hWnd,
  2383.     IN int dx,
  2384.     IN int dy,
  2385.     IN CONST RECT *prcScroll,
  2386.     IN CONST RECT *prcClip,
  2387.     IN HRGN hrgnUpdate,
  2388.     OUT LPRECT prcUpdate,
  2389.     IN UINT flags);
  2390. #define SW_SCROLLCHILDREN   0x0001  /* Scroll children within *lprcScroll. */
  2391. #define SW_INVALIDATE       0x0002  /* Invalidate after scrolling */
  2392. #define SW_ERASE            0x0004  /* If SW_INVALIDATE, don't send WM_ERASEBACKGROUND */
  2393. #if(WINVER >= 0x0500)
  2394. #define SW_SMOOTHSCROLL     0x0010  /* Use smooth scrolling */
  2395. #endif /* WINVER >= 0x0500 */
  2396. #ifndef NOSCROLL
  2397. WINUSERAPI
  2398. int
  2399. WINAPI
  2400. SetScrollPos(
  2401.     IN HWND hWnd,
  2402.     IN int nBar,
  2403.     IN int nPos,
  2404.     IN BOOL bRedraw);
  2405. WINUSERAPI
  2406. int
  2407. WINAPI
  2408. GetScrollPos(
  2409.     IN HWND hWnd,
  2410.     IN int nBar);
  2411. WINUSERAPI
  2412. BOOL
  2413. WINAPI
  2414. SetScrollRange(
  2415.     IN HWND hWnd,
  2416.     IN int nBar,
  2417.     IN int nMinPos,
  2418.     IN int nMaxPos,
  2419.     IN BOOL bRedraw);
  2420. WINUSERAPI
  2421. BOOL
  2422. WINAPI
  2423. GetScrollRange(
  2424.     IN HWND hWnd,
  2425.     IN int nBar,
  2426.     OUT LPINT lpMinPos,
  2427.     OUT LPINT lpMaxPos);
  2428. WINUSERAPI
  2429. BOOL
  2430. WINAPI
  2431. ShowScrollBar(
  2432.     IN HWND hWnd,
  2433.     IN int wBar,
  2434.     IN BOOL bShow);
  2435. WINUSERAPI
  2436. BOOL
  2437. WINAPI
  2438. EnableScrollBar(
  2439.     IN HWND hWnd,
  2440.     IN UINT wSBflags,
  2441.     IN UINT wArrows);
  2442. /*
  2443.  * EnableScrollBar() flags
  2444.  */
  2445. #define ESB_ENABLE_BOTH     0x0000
  2446. #define ESB_DISABLE_BOTH    0x0003
  2447. #define ESB_DISABLE_LEFT    0x0001
  2448. #define ESB_DISABLE_RIGHT   0x0002
  2449. #define ESB_DISABLE_UP      0x0001
  2450. #define ESB_DISABLE_DOWN    0x0002
  2451. #define ESB_DISABLE_LTUP    ESB_DISABLE_LEFT
  2452. #define ESB_DISABLE_RTDN    ESB_DISABLE_RIGHT
  2453. #endif  /* !NOSCROLL */
  2454. WINUSERAPI
  2455. BOOL
  2456. WINAPI
  2457. SetPropA(
  2458.     IN HWND hWnd,
  2459.     IN LPCSTR lpString,
  2460.     IN HANDLE hData);
  2461. WINUSERAPI
  2462. BOOL
  2463. WINAPI
  2464. SetPropW(
  2465.     IN HWND hWnd,
  2466.     IN LPCWSTR lpString,
  2467.     IN HANDLE hData);
  2468. #ifdef UNICODE
  2469. #define SetProp  SetPropW
  2470. #else
  2471. #define SetProp  SetPropA
  2472. #endif // !UNICODE
  2473. WINUSERAPI
  2474. HANDLE
  2475. WINAPI
  2476. GetPropA(
  2477.     IN HWND hWnd,
  2478.     IN LPCSTR lpString);
  2479. WINUSERAPI
  2480. HANDLE
  2481. WINAPI
  2482. GetPropW(
  2483.     IN HWND hWnd,
  2484.     IN LPCWSTR lpString);
  2485. #ifdef UNICODE
  2486. #define GetProp  GetPropW
  2487. #else
  2488. #define GetProp  GetPropA
  2489. #endif // !UNICODE
  2490. WINUSERAPI
  2491. HANDLE
  2492. WINAPI
  2493. RemovePropA(
  2494.     IN HWND hWnd,
  2495.     IN LPCSTR lpString);
  2496. WINUSERAPI
  2497. HANDLE
  2498. WINAPI
  2499. RemovePropW(
  2500.     IN HWND hWnd,
  2501.     IN LPCWSTR lpString);
  2502. #ifdef UNICODE
  2503. #define RemoveProp  RemovePropW
  2504. #else
  2505. #define RemoveProp  RemovePropA
  2506. #endif // !UNICODE
  2507. WINUSERAPI
  2508. int
  2509. WINAPI
  2510. EnumPropsExA(
  2511.     IN HWND hWnd,
  2512.     IN PROPENUMPROCEXA lpEnumFunc,
  2513.     IN LPARAM lParam);
  2514. WINUSERAPI
  2515. int
  2516. WINAPI
  2517. EnumPropsExW(
  2518.     IN HWND hWnd,
  2519.     IN PROPENUMPROCEXW lpEnumFunc,
  2520.     IN LPARAM lParam);
  2521. #ifdef UNICODE
  2522. #define EnumPropsEx  EnumPropsExW
  2523. #else
  2524. #define EnumPropsEx  EnumPropsExA
  2525. #endif // !UNICODE
  2526. WINUSERAPI
  2527. int
  2528. WINAPI
  2529. EnumPropsA(
  2530.     IN HWND hWnd,
  2531.     IN PROPENUMPROCA lpEnumFunc);
  2532. WINUSERAPI
  2533. int
  2534. WINAPI
  2535. EnumPropsW(
  2536.     IN HWND hWnd,
  2537.     IN PROPENUMPROCW lpEnumFunc);
  2538. #ifdef UNICODE
  2539. #define EnumProps  EnumPropsW
  2540. #else
  2541. #define EnumProps  EnumPropsA
  2542. #endif // !UNICODE
  2543. WINUSERAPI
  2544. BOOL
  2545. WINAPI
  2546. SetWindowTextA(
  2547.     IN HWND hWnd,
  2548.     IN LPCSTR lpString);
  2549. WINUSERAPI
  2550. BOOL
  2551. WINAPI
  2552. SetWindowTextW(
  2553.     IN HWND hWnd,
  2554.     IN LPCWSTR lpString);
  2555. #ifdef UNICODE
  2556. #define SetWindowText  SetWindowTextW
  2557. #else
  2558. #define SetWindowText  SetWindowTextA
  2559. #endif // !UNICODE
  2560. WINUSERAPI
  2561. int
  2562. WINAPI
  2563. GetWindowTextA(
  2564.     IN HWND hWnd,
  2565.     OUT LPSTR lpString,
  2566.     IN int nMaxCount);
  2567. WINUSERAPI
  2568. int
  2569. WINAPI
  2570. GetWindowTextW(
  2571.     IN HWND hWnd,
  2572.     OUT LPWSTR lpString,
  2573.     IN int nMaxCount);
  2574. #ifdef UNICODE
  2575. #define GetWindowText  GetWindowTextW
  2576. #else
  2577. #define GetWindowText  GetWindowTextA
  2578. #endif // !UNICODE
  2579. WINUSERAPI
  2580. int
  2581. WINAPI
  2582. GetWindowTextLengthA(
  2583.     IN HWND hWnd);
  2584. WINUSERAPI
  2585. int
  2586. WINAPI
  2587. GetWindowTextLengthW(
  2588.     IN HWND hWnd);
  2589. #ifdef UNICODE
  2590. #define GetWindowTextLength  GetWindowTextLengthW
  2591. #else
  2592. #define GetWindowTextLength  GetWindowTextLengthA
  2593. #endif // !UNICODE
  2594. WINUSERAPI
  2595. BOOL
  2596. WINAPI
  2597. GetClientRect(
  2598.     IN HWND hWnd,
  2599.     OUT LPRECT lpRect);
  2600. WINUSERAPI
  2601. BOOL
  2602. WINAPI
  2603. GetWindowRect(
  2604.     IN HWND hWnd,
  2605.     OUT LPRECT lpRect);
  2606. WINUSERAPI
  2607. BOOL
  2608. WINAPI
  2609. AdjustWindowRect(
  2610.     IN OUT LPRECT lpRect,
  2611.     IN DWORD dwStyle,
  2612.     IN BOOL bMenu);
  2613. WINUSERAPI
  2614. BOOL
  2615. WINAPI
  2616. AdjustWindowRectEx(
  2617.     IN OUT LPRECT lpRect,
  2618.     IN DWORD dwStyle,
  2619.     IN BOOL bMenu,
  2620.     IN DWORD dwExStyle);
  2621. #if(WINVER >= 0x0400)
  2622. #define HELPINFO_WINDOW    0x0001
  2623. #define HELPINFO_MENUITEM  0x0002
  2624. typedef struct tagHELPINFO      /* Structure pointed to by lParam of WM_HELP */
  2625. {
  2626.     UINT    cbSize;             /* Size in bytes of this struct  */
  2627.     int     iContextType;       /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */
  2628.     int     iCtrlId;            /* Control Id or a Menu item Id. */
  2629.     HANDLE  hItemHandle;        /* hWnd of control or hMenu.     */
  2630.     DWORD_PTR dwContextId;      /* Context Id associated with this item */
  2631.     POINT   MousePos;           /* Mouse Position in screen co-ordinates */
  2632. }  HELPINFO, FAR *LPHELPINFO;
  2633. WINUSERAPI
  2634. BOOL
  2635. WINAPI
  2636. SetWindowContextHelpId(
  2637.     IN HWND,
  2638.     IN DWORD);
  2639. WINUSERAPI
  2640. DWORD
  2641. WINAPI
  2642. GetWindowContextHelpId(
  2643.     IN HWND);
  2644. WINUSERAPI
  2645. BOOL
  2646. WINAPI
  2647. SetMenuContextHelpId(
  2648.     IN HMENU,
  2649.     IN DWORD);
  2650. WINUSERAPI
  2651. DWORD
  2652. WINAPI
  2653. GetMenuContextHelpId(
  2654.     IN HMENU);
  2655. #endif /* WINVER >= 0x0400 */
  2656. #ifndef NOMB
  2657. /*
  2658.  * MessageBox() Flags
  2659.  */
  2660. #define MB_OK                       0x00000000L
  2661. #define MB_OKCANCEL                 0x00000001L
  2662. #define MB_ABORTRETRYIGNORE         0x00000002L
  2663. #define MB_YESNOCANCEL              0x00000003L
  2664. #define MB_YESNO                    0x00000004L
  2665. #define MB_RETRYCANCEL              0x00000005L
  2666. #if(WINVER >= 0x0500)
  2667. #define MB_CANCELTRYCONTINUE        0x00000006L
  2668. #endif /* WINVER >= 0x0500 */
  2669. #define MB_ICONHAND                 0x00000010L
  2670. #define MB_ICONQUESTION             0x00000020L
  2671. #define MB_ICONEXCLAMATION          0x00000030L
  2672. #define MB_ICONASTERISK             0x00000040L
  2673. #if(WINVER >= 0x0400)
  2674. #define MB_USERICON                 0x00000080L
  2675. #define MB_ICONWARNING              MB_ICONEXCLAMATION
  2676. #define MB_ICONERROR                MB_ICONHAND
  2677. #endif /* WINVER >= 0x0400 */
  2678. #define MB_ICONINFORMATION          MB_ICONASTERISK
  2679. #define MB_ICONSTOP                 MB_ICONHAND
  2680. #define MB_DEFBUTTON1               0x00000000L
  2681. #define MB_DEFBUTTON2               0x00000100L
  2682. #define MB_DEFBUTTON3               0x00000200L
  2683. #if(WINVER >= 0x0400)
  2684. #define MB_DEFBUTTON4               0x00000300L
  2685. #endif /* WINVER >= 0x0400 */
  2686. #define MB_APPLMODAL                0x00000000L
  2687. #define MB_SYSTEMMODAL              0x00001000L
  2688. #define MB_TASKMODAL                0x00002000L
  2689. #if(WINVER >= 0x0400)
  2690. #define MB_HELP                     0x00004000L // Help Button
  2691. #endif /* WINVER >= 0x0400 */
  2692. #define MB_NOFOCUS                  0x00008000L
  2693. #define MB_SETFOREGROUND            0x00010000L
  2694. #define MB_DEFAULT_DESKTOP_ONLY     0x00020000L
  2695. #if(WINVER >= 0x0400)
  2696. #define MB_TOPMOST                  0x00040000L
  2697. #define MB_RIGHT                    0x00080000L
  2698. #define MB_RTLREADING               0x00100000L
  2699. #endif /* WINVER >= 0x0400 */
  2700. #ifdef _WIN32_WINNT
  2701. #if (_WIN32_WINNT >= 0x0400)
  2702. #define MB_SERVICE_NOTIFICATION          0x00200000L
  2703. #else
  2704. #define MB_SERVICE_NOTIFICATION          0x00040000L
  2705. #endif
  2706. #define MB_SERVICE_NOTIFICATION_NT3X     0x00040000L
  2707. #endif
  2708. #define MB_TYPEMASK                 0x0000000FL
  2709. #define MB_ICONMASK                 0x000000F0L
  2710. #define MB_DEFMASK                  0x00000F00L
  2711. #define MB_MODEMASK                 0x00003000L
  2712. #define MB_MISCMASK                 0x0000C000L
  2713. WINUSERAPI
  2714. int
  2715. WINAPI
  2716. MessageBoxA(
  2717.     IN HWND hWnd,
  2718.     IN LPCSTR lpText,
  2719.     IN LPCSTR lpCaption,
  2720.     IN UINT uType);
  2721. WINUSERAPI
  2722. int
  2723. WINAPI
  2724. MessageBoxW(
  2725.     IN HWND hWnd,
  2726.     IN LPCWSTR lpText,
  2727.     IN LPCWSTR lpCaption,
  2728.     IN UINT uType);
  2729. #ifdef UNICODE
  2730. #define MessageBox  MessageBoxW
  2731. #else
  2732. #define MessageBox  MessageBoxA
  2733. #endif // !UNICODE
  2734. WINUSERAPI
  2735. int
  2736. WINAPI
  2737. MessageBoxExA(
  2738.     IN HWND hWnd,
  2739.     IN LPCSTR lpText,
  2740.     IN LPCSTR lpCaption,
  2741.     IN UINT uType,
  2742.     IN WORD wLanguageId);
  2743. WINUSERAPI
  2744. int
  2745. WINAPI
  2746. MessageBoxExW(
  2747.     IN HWND hWnd,
  2748.     IN LPCWSTR lpText,
  2749.     IN LPCWSTR lpCaption,
  2750.     IN UINT uType,
  2751.     IN WORD wLanguageId);
  2752. #ifdef UNICODE
  2753. #define MessageBoxEx  MessageBoxExW
  2754. #else
  2755. #define MessageBoxEx  MessageBoxExA
  2756. #endif // !UNICODE
  2757. #if(WINVER >= 0x0400)
  2758. typedef void (CALLBACK *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
  2759. typedef struct tagMSGBOXPARAMSA
  2760. {
  2761.     UINT        cbSize;
  2762.     HWND        hwndOwner;
  2763.     HINSTANCE   hInstance;
  2764.     LPCSTR      lpszText;
  2765.     LPCSTR      lpszCaption;
  2766.     DWORD       dwStyle;
  2767.     LPCSTR      lpszIcon;
  2768.     DWORD_PTR   dwContextHelpId;
  2769.     MSGBOXCALLBACK      lpfnMsgBoxCallback;
  2770.     DWORD       dwLanguageId;
  2771. } MSGBOXPARAMSA, *PMSGBOXPARAMSA, *LPMSGBOXPARAMSA;
  2772. typedef struct tagMSGBOXPARAMSW
  2773. {
  2774.     UINT        cbSize;
  2775.     HWND        hwndOwner;
  2776.     HINSTANCE   hInstance;
  2777.     LPCWSTR     lpszText;
  2778.     LPCWSTR     lpszCaption;
  2779.     DWORD       dwStyle;
  2780.     LPCWSTR     lpszIcon;
  2781.     DWORD_PTR   dwContextHelpId;
  2782.     MSGBOXCALLBACK      lpfnMsgBoxCallback;
  2783.     DWORD       dwLanguageId;
  2784. } MSGBOXPARAMSW, *PMSGBOXPARAMSW, *LPMSGBOXPARAMSW;
  2785. #ifdef UNICODE
  2786. typedef MSGBOXPARAMSW MSGBOXPARAMS;
  2787. typedef PMSGBOXPARAMSW PMSGBOXPARAMS;
  2788. typedef LPMSGBOXPARAMSW LPMSGBOXPARAMS;
  2789. #else
  2790. typedef MSGBOXPARAMSA MSGBOXPARAMS;
  2791. typedef PMSGBOXPARAMSA PMSGBOXPARAMS;
  2792. typedef LPMSGBOXPARAMSA LPMSGBOXPARAMS;
  2793. #endif // UNICODE
  2794. WINUSERAPI
  2795. int
  2796. WINAPI
  2797. MessageBoxIndirectA(
  2798.     IN CONST MSGBOXPARAMSA *);
  2799. WINUSERAPI
  2800. int
  2801. WINAPI
  2802. MessageBoxIndirectW(
  2803.     IN CONST MSGBOXPARAMSW *);
  2804. #ifdef UNICODE
  2805. #define MessageBoxIndirect  MessageBoxIndirectW
  2806. #else
  2807. #define MessageBoxIndirect  MessageBoxIndirectA
  2808. #endif // !UNICODE
  2809. #endif /* WINVER >= 0x0400 */
  2810. WINUSERAPI
  2811. BOOL
  2812. WINAPI
  2813. MessageBeep(
  2814.     IN UINT uType);
  2815. #endif /* !NOMB */
  2816. WINUSERAPI
  2817. int
  2818. WINAPI
  2819. ShowCursor(
  2820.     IN BOOL bShow);
  2821. WINUSERAPI
  2822. BOOL
  2823. WINAPI
  2824. SetCursorPos(
  2825.     IN int X,
  2826.     IN int Y);
  2827. WINUSERAPI
  2828. HCURSOR
  2829. WINAPI
  2830. SetCursor(
  2831.     IN HCURSOR hCursor);
  2832. WINUSERAPI
  2833. BOOL
  2834. WINAPI
  2835. GetCursorPos(
  2836.     OUT LPPOINT lpPoint);
  2837. WINUSERAPI
  2838. BOOL
  2839. WINAPI
  2840. ClipCursor(
  2841.     IN CONST RECT *lpRect);
  2842. WINUSERAPI
  2843. BOOL
  2844. WINAPI
  2845. GetClipCursor(
  2846.     OUT LPRECT lpRect);
  2847. WINUSERAPI
  2848. HCURSOR
  2849. WINAPI
  2850. GetCursor(
  2851.     VOID);
  2852. WINUSERAPI
  2853. BOOL
  2854. WINAPI
  2855. CreateCaret(
  2856.     IN HWND hWnd,
  2857.     IN HBITMAP hBitmap,
  2858.     IN int nWidth,
  2859.     IN int nHeight);
  2860. WINUSERAPI
  2861. UINT
  2862. WINAPI
  2863. GetCaretBlinkTime(
  2864.     VOID);
  2865. WINUSERAPI
  2866. BOOL
  2867. WINAPI
  2868. SetCaretBlinkTime(
  2869.     IN UINT uMSeconds);
  2870. WINUSERAPI
  2871. BOOL
  2872. WINAPI
  2873. DestroyCaret(
  2874.     VOID);
  2875. WINUSERAPI
  2876. BOOL
  2877. WINAPI
  2878. HideCaret(
  2879.     IN HWND hWnd);
  2880. WINUSERAPI
  2881. BOOL
  2882. WINAPI
  2883. ShowCaret(
  2884.     IN HWND hWnd);
  2885. WINUSERAPI
  2886. BOOL
  2887. WINAPI
  2888. SetCaretPos(
  2889.     IN int X,
  2890.     IN int Y);
  2891. WINUSERAPI
  2892. BOOL
  2893. WINAPI
  2894. GetCaretPos(
  2895.     OUT LPPOINT lpPoint);
  2896. WINUSERAPI
  2897. BOOL
  2898. WINAPI
  2899. ClientToScreen(
  2900.     IN HWND hWnd,
  2901.     IN OUT LPPOINT lpPoint);
  2902. WINUSERAPI
  2903. BOOL
  2904. WINAPI
  2905. ScreenToClient(
  2906.     IN HWND hWnd,
  2907.     IN OUT LPPOINT lpPoint);
  2908. WINUSERAPI
  2909. int
  2910. WINAPI
  2911. MapWindowPoints(
  2912.     IN HWND hWndFrom,
  2913.     IN HWND hWndTo,
  2914.     IN OUT LPPOINT lpPoints,
  2915.     IN UINT cPoints);
  2916. WINUSERAPI
  2917. HWND
  2918. WINAPI
  2919. WindowFromPoint(
  2920.     IN POINT Point);
  2921. WINUSERAPI
  2922. HWND
  2923. WINAPI
  2924. ChildWindowFromPoint(
  2925.     IN HWND hWndParent,
  2926.     IN POINT Point);
  2927. #if(WINVER >= 0x0400)
  2928. #define CWP_ALL             0x0000
  2929. #define CWP_SKIPINVISIBLE   0x0001
  2930. #define CWP_SKIPDISABLED    0x0002
  2931. #define CWP_SKIPTRANSPARENT 0x0004
  2932. WINUSERAPI HWND    WINAPI ChildWindowFromPointEx( IN HWND, IN POINT, IN UINT);
  2933. #endif /* WINVER >= 0x0400 */
  2934. #ifndef NOCOLOR
  2935. /*
  2936.  * Color Types
  2937.  */
  2938. #define CTLCOLOR_MSGBOX         0
  2939. #define CTLCOLOR_EDIT           1
  2940. #define CTLCOLOR_LISTBOX        2
  2941. #define CTLCOLOR_BTN            3
  2942. #define CTLCOLOR_DLG            4
  2943. #define CTLCOLOR_SCROLLBAR      5
  2944. #define CTLCOLOR_STATIC         6
  2945. #define CTLCOLOR_MAX            7
  2946. #define COLOR_SCROLLBAR         0
  2947. #define COLOR_BACKGROUND        1
  2948. #define COLOR_ACTIVECAPTION     2
  2949. #define COLOR_INACTIVECAPTION   3
  2950. #define COLOR_MENU              4
  2951. #define COLOR_WINDOW            5
  2952. #define COLOR_WINDOWFRAME       6
  2953. #define COLOR_MENUTEXT          7
  2954. #define COLOR_WINDOWTEXT        8
  2955. #define COLOR_CAPTIONTEXT       9
  2956. #define COLOR_ACTIVEBORDER      10
  2957. #define COLOR_INACTIVEBORDER    11
  2958. #define COLOR_APPWORKSPACE      12
  2959. #define COLOR_HIGHLIGHT         13
  2960. #define COLOR_HIGHLIGHTTEXT     14
  2961. #define COLOR_BTNFACE           15
  2962. #define COLOR_BTNSHADOW         16
  2963. #define COLOR_GRAYTEXT          17
  2964. #define COLOR_BTNTEXT           18
  2965. #define COLOR_INACTIVECAPTIONTEXT 19
  2966. #define COLOR_BTNHIGHLIGHT      20
  2967. #if(WINVER >= 0x0400)
  2968. #define COLOR_3DDKSHADOW        21
  2969. #define COLOR_3DLIGHT           22
  2970. #define COLOR_INFOTEXT          23
  2971. #define COLOR_INFOBK            24
  2972. #endif /* WINVER >= 0x0400 */
  2973. #if(WINVER >= 0x0500)
  2974. #define COLOR_HOTLIGHT          26
  2975. #define COLOR_GRADIENTACTIVECAPTION 27
  2976. #define COLOR_GRADIENTINACTIVECAPTION 28
  2977. #if(WINVER >= 0x0501)
  2978. #define COLOR_MENUHILIGHT       29
  2979. #define COLOR_MENUBAR           30
  2980. #endif /* WINVER >= 0x0501 */
  2981. #endif /* WINVER >= 0x0500 */
  2982. #if(WINVER >= 0x0400)
  2983. #define COLOR_DESKTOP           COLOR_BACKGROUND
  2984. #define COLOR_3DFACE            COLOR_BTNFACE
  2985. #define COLOR_3DSHADOW          COLOR_BTNSHADOW
  2986. #define COLOR_3DHIGHLIGHT       COLOR_BTNHIGHLIGHT
  2987. #define COLOR_3DHILIGHT         COLOR_BTNHIGHLIGHT
  2988. #define COLOR_BTNHILIGHT        COLOR_BTNHIGHLIGHT
  2989. #endif /* WINVER >= 0x0400 */
  2990. WINUSERAPI
  2991. DWORD
  2992. WINAPI
  2993. GetSysColor(
  2994.     IN int nIndex);
  2995. #if(WINVER >= 0x0400)
  2996. WINUSERAPI
  2997. HBRUSH
  2998. WINAPI
  2999. GetSysColorBrush(
  3000.     IN int nIndex);
  3001. #endif /* WINVER >= 0x0400 */
  3002. WINUSERAPI
  3003. BOOL
  3004. WINAPI
  3005. SetSysColors(
  3006.     IN int cElements,
  3007.     IN CONST INT * lpaElements,
  3008.     IN CONST COLORREF * lpaRgbValues);
  3009. #endif /* !NOCOLOR */
  3010. WINUSERAPI
  3011. BOOL
  3012. WINAPI
  3013. DrawFocusRect(
  3014.     IN HDC hDC,
  3015.     IN CONST RECT * lprc);
  3016. WINUSERAPI
  3017. int
  3018. WINAPI
  3019. FillRect(
  3020.     IN HDC hDC,
  3021.     IN CONST RECT *lprc,
  3022.     IN HBRUSH hbr);
  3023. WINUSERAPI
  3024. int
  3025. WINAPI
  3026. FrameRect(
  3027.     IN HDC hDC,
  3028.     IN CONST RECT *lprc,
  3029.     IN HBRUSH hbr);
  3030. WINUSERAPI
  3031. BOOL
  3032. WINAPI
  3033. InvertRect(
  3034.     IN HDC hDC,
  3035.     IN CONST RECT *lprc);
  3036. WINUSERAPI
  3037. BOOL
  3038. WINAPI
  3039. SetRect(
  3040.     OUT LPRECT lprc,
  3041.     IN int xLeft,
  3042.     IN int yTop,
  3043.     IN int xRight,
  3044.     IN int yBottom);
  3045. WINUSERAPI
  3046. BOOL
  3047. WINAPI
  3048. SetRectEmpty(
  3049.     OUT LPRECT lprc);
  3050. WINUSERAPI
  3051. BOOL
  3052. WINAPI
  3053. CopyRect(
  3054.     OUT LPRECT lprcDst,
  3055.     IN CONST RECT *lprcSrc);
  3056. WINUSERAPI
  3057. BOOL
  3058. WINAPI
  3059. InflateRect(
  3060.     IN OUT LPRECT lprc,
  3061.     IN int dx,
  3062.     IN int dy);
  3063. WINUSERAPI
  3064. BOOL
  3065. WINAPI
  3066. IntersectRect(
  3067.     OUT LPRECT lprcDst,
  3068.     IN CONST RECT *lprcSrc1,
  3069.     IN CONST RECT *lprcSrc2);
  3070. WINUSERAPI
  3071. BOOL
  3072. WINAPI
  3073. UnionRect(
  3074.     OUT LPRECT lprcDst,
  3075.     IN CONST RECT *lprcSrc1,
  3076.     IN CONST RECT *lprcSrc2);
  3077. WINUSERAPI
  3078. BOOL
  3079. WINAPI
  3080. SubtractRect(
  3081.     OUT LPRECT lprcDst,
  3082.     IN CONST RECT *lprcSrc1,
  3083.     IN CONST RECT *lprcSrc2);
  3084. WINUSERAPI
  3085. BOOL
  3086. WINAPI
  3087. OffsetRect(
  3088.     IN OUT LPRECT lprc,
  3089.     IN int dx,
  3090.     IN int dy);
  3091. WINUSERAPI
  3092. BOOL
  3093. WINAPI
  3094. IsRectEmpty(
  3095.     IN CONST RECT *lprc);
  3096. WINUSERAPI
  3097. BOOL
  3098. WINAPI
  3099. EqualRect(
  3100.     IN CONST RECT *lprc1,
  3101.     IN CONST RECT *lprc2);
  3102. WINUSERAPI
  3103. BOOL
  3104. WINAPI
  3105. PtInRect(
  3106.     IN CONST RECT *lprc,
  3107.     IN POINT pt);
  3108. #ifndef NOWINOFFSETS
  3109. WINUSERAPI
  3110. WORD
  3111. WINAPI
  3112. GetWindowWord(
  3113.     IN HWND hWnd,
  3114.     IN int nIndex);
  3115. WINUSERAPI
  3116. WORD
  3117. WINAPI
  3118. SetWindowWord(
  3119.     IN HWND hWnd,
  3120.     IN int nIndex,
  3121.     IN WORD wNewWord);
  3122. WINUSERAPI
  3123. LONG
  3124. WINAPI
  3125. GetWindowLongA(
  3126.     IN HWND hWnd,
  3127.     IN int nIndex);
  3128. WINUSERAPI
  3129. LONG
  3130. WINAPI
  3131. GetWindowLongW(
  3132.     IN HWND hWnd,
  3133.     IN int nIndex);
  3134. #ifdef UNICODE
  3135. #define GetWindowLong  GetWindowLongW
  3136. #else
  3137. #define GetWindowLong  GetWindowLongA
  3138. #endif // !UNICODE
  3139. WINUSERAPI
  3140. LONG
  3141. WINAPI
  3142. SetWindowLongA(
  3143.     IN HWND hWnd,
  3144.     IN int nIndex,
  3145.     IN LONG dwNewLong);
  3146. WINUSERAPI
  3147. LONG
  3148. WINAPI
  3149. SetWindowLongW(
  3150.     IN HWND hWnd,
  3151.     IN int nIndex,
  3152.     IN LONG dwNewLong);
  3153. #ifdef UNICODE
  3154. #define SetWindowLong  SetWindowLongW
  3155. #else
  3156. #define SetWindowLong  SetWindowLongA
  3157. #endif // !UNICODE
  3158. #ifdef _WIN64
  3159. WINUSERAPI
  3160. LONG_PTR
  3161. WINAPI
  3162. GetWindowLongPtrA(
  3163.     HWND hWnd,
  3164.     int nIndex);
  3165. WINUSERAPI
  3166. LONG_PTR
  3167. WINAPI
  3168. GetWindowLongPtrW(
  3169.     HWND hWnd,
  3170.     int nIndex);
  3171. #ifdef UNICODE
  3172. #define GetWindowLongPtr  GetWindowLongPtrW
  3173. #else
  3174. #define GetWindowLongPtr  GetWindowLongPtrA
  3175. #endif // !UNICODE
  3176. WINUSERAPI
  3177. LONG_PTR
  3178. WINAPI
  3179. SetWindowLongPtrA(
  3180.     HWND hWnd,
  3181.     int nIndex,
  3182.     LONG_PTR dwNewLong);
  3183. WINUSERAPI
  3184. LONG_PTR
  3185. WINAPI
  3186. SetWindowLongPtrW(
  3187.     HWND hWnd,
  3188.     int nIndex,
  3189.     LONG_PTR dwNewLong);
  3190. #ifdef UNICODE
  3191. #define SetWindowLongPtr  SetWindowLongPtrW
  3192. #else
  3193. #define SetWindowLongPtr  SetWindowLongPtrA
  3194. #endif // !UNICODE
  3195. #else  /* _WIN64 */
  3196. #define GetWindowLongPtrA   GetWindowLongA
  3197. #define GetWindowLongPtrW   GetWindowLongW
  3198. #ifdef UNICODE
  3199. #define GetWindowLongPtr  GetWindowLongPtrW
  3200. #else
  3201. #define GetWindowLongPtr  GetWindowLongPtrA
  3202. #endif // !UNICODE
  3203. #define SetWindowLongPtrA   SetWindowLongA
  3204. #define SetWindowLongPtrW   SetWindowLongW
  3205. #ifdef UNICODE
  3206. #define SetWindowLongPtr  SetWindowLongPtrW
  3207. #else
  3208. #define SetWindowLongPtr  SetWindowLongPtrA
  3209. #endif // !UNICODE
  3210. #endif /* _WIN64 */
  3211. WINUSERAPI
  3212. WORD
  3213. WINAPI
  3214. GetClassWord(
  3215.     IN HWND hWnd,
  3216.     IN int nIndex);
  3217. WINUSERAPI
  3218. WORD
  3219. WINAPI
  3220. SetClassWord(
  3221.     IN HWND hWnd,
  3222.     IN int nIndex,
  3223.     IN WORD wNewWord);
  3224. WINUSERAPI
  3225. DWORD
  3226. WINAPI
  3227. GetClassLongA(
  3228.     IN HWND hWnd,
  3229.     IN int nIndex);
  3230. WINUSERAPI
  3231. DWORD
  3232. WINAPI
  3233. GetClassLongW(
  3234.     IN HWND hWnd,
  3235.     IN int nIndex);
  3236. #ifdef UNICODE
  3237. #define GetClassLong  GetClassLongW
  3238. #else
  3239. #define GetClassLong  GetClassLongA
  3240. #endif // !UNICODE
  3241. WINUSERAPI
  3242. DWORD
  3243. WINAPI
  3244. SetClassLongA(
  3245.     IN HWND hWnd,
  3246.     IN int nIndex,
  3247.     IN LONG dwNewLong);
  3248. WINUSERAPI
  3249. DWORD
  3250. WINAPI
  3251. SetClassLongW(
  3252.     IN HWND hWnd,
  3253.     IN int nIndex,
  3254.     IN LONG dwNewLong);
  3255. #ifdef UNICODE
  3256. #define SetClassLong  SetClassLongW
  3257. #else
  3258. #define SetClassLong  SetClassLongA
  3259. #endif // !UNICODE
  3260. #ifdef _WIN64
  3261. WINUSERAPI
  3262. ULONG_PTR
  3263. WINAPI
  3264. GetClassLongPtrA(
  3265.     IN HWND hWnd,
  3266.     IN int nIndex);
  3267. WINUSERAPI
  3268. ULONG_PTR
  3269. WINAPI
  3270. GetClassLongPtrW(
  3271.     IN HWND hWnd,
  3272.     IN int nIndex);
  3273. #ifdef UNICODE
  3274. #define GetClassLongPtr  GetClassLongPtrW
  3275. #else
  3276. #define GetClassLongPtr  GetClassLongPtrA
  3277. #endif // !UNICODE
  3278. WINUSERAPI
  3279. ULONG_PTR
  3280. WINAPI
  3281. SetClassLongPtrA(
  3282.     IN HWND hWnd,
  3283.     IN int nIndex,
  3284.     IN LONG_PTR dwNewLong);
  3285. WINUSERAPI
  3286. ULONG_PTR
  3287. WINAPI
  3288. SetClassLongPtrW(
  3289.     IN HWND hWnd,
  3290.     IN int nIndex,
  3291.     IN LONG_PTR dwNewLong);
  3292. #ifdef UNICODE
  3293. #define SetClassLongPtr  SetClassLongPtrW
  3294. #else
  3295. #define SetClassLongPtr  SetClassLongPtrA
  3296. #endif // !UNICODE
  3297. #else  /* _WIN64 */
  3298. #define GetClassLongPtrA    GetClassLongA
  3299. #define GetClassLongPtrW    GetClassLongW
  3300. #ifdef UNICODE
  3301. #define GetClassLongPtr  GetClassLongPtrW
  3302. #else
  3303. #define GetClassLongPtr  GetClassLongPtrA
  3304. #endif // !UNICODE
  3305. #define SetClassLongPtrA    SetClassLongA
  3306. #define SetClassLongPtrW    SetClassLongW
  3307. #ifdef UNICODE
  3308. #define SetClassLongPtr  SetClassLongPtrW
  3309. #else
  3310. #define SetClassLongPtr  SetClassLongPtrA
  3311. #endif // !UNICODE
  3312. #endif /* _WIN64 */
  3313. #endif /* !NOWINOFFSETS */
  3314. #if(WINVER >= 0x0500)
  3315. WINUSERAPI
  3316. BOOL
  3317. WINAPI
  3318. GetProcessDefaultLayout(
  3319.     OUT DWORD *pdwDefaultLayout);
  3320. WINUSERAPI
  3321. BOOL
  3322. WINAPI
  3323. SetProcessDefaultLayout(
  3324.     IN DWORD dwDefaultLayout);
  3325. #endif /* WINVER >= 0x0500 */
  3326. WINUSERAPI
  3327. HWND
  3328. WINAPI
  3329. GetDesktopWindow(
  3330.     VOID);
  3331. WINUSERAPI
  3332. HWND
  3333. WINAPI
  3334. GetParent(
  3335.     IN HWND hWnd);
  3336. WINUSERAPI
  3337. HWND
  3338. WINAPI
  3339. SetParent(
  3340.     IN HWND hWndChild,
  3341.     IN HWND hWndNewParent);
  3342. WINUSERAPI
  3343. BOOL
  3344. WINAPI
  3345. EnumChildWindows(
  3346.     IN HWND hWndParent,
  3347.     IN WNDENUMPROC lpEnumFunc,
  3348.     IN LPARAM lParam);
  3349. WINUSERAPI
  3350. HWND
  3351. WINAPI
  3352. FindWindowA(
  3353.     IN LPCSTR lpClassName,
  3354.     IN LPCSTR lpWindowName);
  3355. WINUSERAPI
  3356. HWND
  3357. WINAPI
  3358. FindWindowW(
  3359.     IN LPCWSTR lpClassName,
  3360.     IN LPCWSTR lpWindowName);
  3361. #ifdef UNICODE
  3362. #define FindWindow  FindWindowW
  3363. #else
  3364. #define FindWindow  FindWindowA
  3365. #endif // !UNICODE
  3366. #if(WINVER >= 0x0400)
  3367. WINUSERAPI HWND    WINAPI FindWindowExA( IN HWND, IN HWND, IN LPCSTR, IN LPCSTR);
  3368. WINUSERAPI HWND    WINAPI FindWindowExW( IN HWND, IN HWND, IN LPCWSTR, IN LPCWSTR);
  3369. #ifdef UNICODE
  3370. #define FindWindowEx  FindWindowExW
  3371. #else
  3372. #define FindWindowEx  FindWindowExA
  3373. #endif // !UNICODE
  3374. #endif /* WINVER >= 0x0400 */
  3375. WINUSERAPI
  3376. BOOL
  3377. WINAPI
  3378. EnumWindows(
  3379.     IN WNDENUMPROC lpEnumFunc,
  3380.     IN LPARAM lParam);
  3381. WINUSERAPI
  3382. BOOL
  3383. WINAPI
  3384. EnumThreadWindows(
  3385.     IN DWORD dwThreadId,
  3386.     IN WNDENUMPROC lpfn,
  3387.     IN LPARAM lParam);
  3388. #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows(HandleToUlong(hTask), lpfn, lParam)
  3389. WINUSERAPI
  3390. int
  3391. WINAPI
  3392. GetClassNameA(
  3393.     IN HWND hWnd,
  3394.     OUT LPSTR lpClassName,
  3395.     IN int nMaxCount);
  3396. WINUSERAPI
  3397. int
  3398. WINAPI
  3399. GetClassNameW(
  3400.     IN HWND hWnd,
  3401.     OUT LPWSTR lpClassName,
  3402.     IN int nMaxCount);
  3403. #ifdef UNICODE
  3404. #define GetClassName  GetClassNameW
  3405. #else
  3406. #define GetClassName  GetClassNameA
  3407. #endif // !UNICODE
  3408. WINUSERAPI
  3409. HWND
  3410. WINAPI
  3411. GetTopWindow(
  3412.     IN HWND hWnd);
  3413. #define GetNextWindow(hWnd, wCmd) GetWindow(hWnd, wCmd)
  3414. #define GetSysModalWindow() (NULL)
  3415. #define SetSysModalWindow(hWnd) (NULL)
  3416. WINUSERAPI
  3417. DWORD
  3418. WINAPI
  3419. GetWindowThreadProcessId(
  3420.     IN HWND hWnd,
  3421.     OUT LPDWORD lpdwProcessId);
  3422. #if(_WIN32_WINNT >= 0x0501)
  3423. WINUSERAPI
  3424. BOOL
  3425. WINAPI
  3426. IsGUIThread(
  3427.     BOOL bConvert);
  3428. #endif /* _WIN32_WINNT >= 0x0501 */
  3429. #define GetWindowTask(hWnd) 
  3430.         ((HANDLE)(DWORD_PTR)GetWindowThreadProcessId(hWnd, NULL))
  3431. WINUSERAPI
  3432. HWND
  3433. WINAPI
  3434. GetLastActivePopup(
  3435.     IN HWND hWnd);
  3436. /*
  3437.  * GetWindow() Constants
  3438.  */
  3439. #define GW_HWNDFIRST        0
  3440. #define GW_HWNDLAST         1
  3441. #define GW_HWNDNEXT         2
  3442. #define GW_HWNDPREV         3
  3443. #define GW_OWNER            4
  3444. #define GW_CHILD            5
  3445. #if(WINVER <= 0x0400)
  3446. #define GW_MAX              5
  3447. #else
  3448. #define GW_ENABLEDPOPUP     6
  3449. #define GW_MAX              6
  3450. #endif
  3451. WINUSERAPI
  3452. HWND
  3453. WINAPI
  3454. GetWindow(
  3455.     IN HWND hWnd,
  3456.     IN UINT uCmd);
  3457. #ifndef NOWH
  3458. #ifdef STRICT
  3459. WINUSERAPI
  3460. HHOOK