windows.p 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589
  1. /* ====================================================================
  2. file windows.p
  3. by Jurjen Dijkstra, 1997 - 1999
  4. mailto:jurjen@global-shared.com
  5. http://www.global-shared.com
  6. language Progress 8.2A
  7. purpose declarations for windows API procedures
  8. ==================================================================== */
  9. &GLOB DONTDEFINE-HPAPI
  10. {windows.i}
  11. PROCEDURE AdjustWindowRect EXTERNAL {&USER} :
  12. DEFINE INPUT PARAMETER lpRect AS LONG. /* get-pointer-value(memptr) */
  13. DEFINE INPUT PARAMETER dwstyle AS LONG.
  14. DEFINE INPUT PARAMETER bMenu AS {&BOOL}.
  15. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  16. END PROCEDURE.
  17. PROCEDURE ClientToScreen EXTERNAL {&USER} :
  18. DEFINE INPUT PARAMETER win-handle AS {&HWND}.
  19. DEFINE INPUT PARAMETER lppoint AS LONG. /* get-pointer-value(memptr) */
  20. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  21. END PROCEDURE.
  22. PROCEDURE CreateProcess{&A} EXTERNAL {&KERNEL} :
  23. DEFINE INPUT PARAMETER lpApplicationName AS LONG. /* NULL */
  24. DEFINE INPUT PARAMETER lpCommandline AS CHAR.
  25. DEFINE INPUT PARAMETER lpProcessAttributes AS LONG.
  26. DEFINE INPUT PARAMETER lpThreadAttributes AS LONG.
  27. DEFINE INPUT PARAMETER bInheritHandles AS {&BOOL}.
  28. DEFINE INPUT PARAMETER dCreationFlags AS LONG.
  29. DEFINE INPUT PARAMETER lpEnvironment AS LONG.
  30. DEFINE INPUT PARAMETER lpCurrentDirectory AS LONG.
  31. DEFINE INPUT PARAMETER lpStartupInfo AS LONG.
  32. DEFINE INPUT PARAMETER lpProcessInformation AS LONG.
  33. DEFINE RETURN PARAMETER bResult AS {&BOOL}.
  34. END PROCEDURE.
  35. PROCEDURE CreateWindowExA EXTERNAL {&USER} :
  36. DEFINE INPUT PARAMETER dwExStyle AS LONG.
  37. DEFINE INPUT PARAMETER lpClassName AS CHAR.
  38. DEFINE INPUT PARAMETER lpWindowName AS CHAR.
  39. DEFINE INPUT PARAMETER dwStyle AS LONG.
  40. DEFINE INPUT PARAMETER x AS LONG.
  41. DEFINE INPUT PARAMETER y AS LONG.
  42. DEFINE INPUT PARAMETER nWidth AS LONG.
  43. DEFINE INPUT PARAMETER nHeight AS LONG.
  44. DEFINE INPUT PARAMETER hWndParent AS LONG.
  45. DEFINE INPUT PARAMETER hMenu AS LONG.
  46. DEFINE INPUT PARAMETER hInstance AS LONG.
  47. DEFINE INPUT PARAMETER lpParam AS LONG.
  48. DEFINE RETURN PARAMETER hwndCreated AS LONG.
  49. END PROCEDURE.
  50. PROCEDURE CloseHandle EXTERNAL {&KERNEL} :
  51. DEFINE INPUT PARAMETER hObject AS LONG.
  52. DEFINE RETURN PARAMETER ReturnValue AS LONG.
  53. END PROCEDURE.
  54. PROCEDURE ClosePrinter EXTERNAL {&WINSPOOL} :
  55. DEFINE INPUT PARAMETER VH_PRINTER_HANDLE AS LONG.
  56. DEFINE RETURN PARAMETER VI_RETURN_VALUE AS {&BOOL}.
  57. END PROCEDURE.
  58. PROCEDURE CreateMutexA EXTERNAL {&KERNEL} :
  59. DEFINE INPUT PARAMETER lpMutexAttributes AS LONG.
  60. DEFINE INPUT PARAMETER bInitialOwner AS LONG.
  61. DEFINE INPUT PARAMETER lpName AS CHAR.
  62. DEFINE RETURN PARAMETER hMutex AS LONG.
  63. END PROCEDURE.
  64. PROCEDURE DeleteMenu EXTERNAL {&USER} :
  65. DEFINE INPUT PARAMETER hMenu AS {&INT}.
  66. DEFINE INPUT PARAMETER uPosition AS {&INT}.
  67. DEFINE INPUT PARAMETER uFlags AS {&INT}.
  68. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  69. END PROCEDURE.
  70. PROCEDURE DrawMenuBar EXTERNAL {&USER} :
  71. DEFINE INPUT PARAMETER hMenu AS LONG.
  72. DEFINE RETURN PARAMETER iRetCode AS LONG.
  73. END PROCEDURE.
  74. PROCEDURE Ellipse EXTERNAL {&GDI} :
  75. DEFINE INPUT PARAMETER hdc AS LONG.
  76. DEFINE INPUT PARAMETER nLeftRect AS LONG.
  77. DEFINE INPUT PARAMETER nTopRect AS LONG.
  78. DEFINE INPUT PARAMETER nRightRect AS LONG.
  79. DEFINE INPUT PARAMETER nBottomRect AS LONG.
  80. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  81. END PROCEDURE.
  82. PROCEDURE EndDoc EXTERNAL {&GDI} :
  83. DEFINE INPUT PARAMETER hdc AS LONG.
  84. DEFINE RETURN PARAMETER uRet AS LONG.
  85. END PROCEDURE.
  86. PROCEDURE EndPage EXTERNAL {&GDI} :
  87. DEFINE INPUT PARAMETER hdc AS LONG.
  88. DEFINE RETURN PARAMETER uRet AS LONG.
  89. END PROCEDURE.
  90. PROCEDURE EnumPrinters{&A} EXTERNAL {&WINSPOOL} :
  91. DEFINE INPUT PARAMETER Flags AS LONG. /* Local, shared, network,etc.. */
  92. DEFINE INPUT PARAMETER Name AS CHAR. /* LEAVE AS NULL ie.: 0 */
  93. DEFINE INPUT PARAMETER Level AS LONG. /* Type of info to return: 1,2,5 on W95 */
  94. DEFINE INPUT PARAMETER pPrinterEnum AS LONG. /* points to PRINTER_INFO_n structures */
  95. DEFINE INPUT PARAMETER cbBuf AS LONG. /* Tells function the size of pPrinterEnum */
  96. DEFINE OUTPUT PARAMETER pcbNeeded AS LONG. /* Number of bytes copied or required */
  97. DEFINE OUTPUT PARAMETER pcReturned AS LONG. /* Number of PRINTER_INFO_n structures returned */
  98. DEFINE RETURN PARAMETER RetValue AS LONG. /* A Bool value = zero if failure */
  99. END PROCEDURE.
  100. PROCEDURE FindExecutable{&A} EXTERNAL {&SHELL} :
  101. DEFINE INPUT PARAMETER lpFile AS CHAR.
  102. DEFINE INPUT PARAMETER lpDirectory AS CHAR.
  103. DEFINE INPUT-OUTPUT PARAMETER lpResult AS CHAR.
  104. DEFINE RETURN PARAMETER hInstance AS {&INT}.
  105. END PROCEDURE.
  106. PROCEDURE FlashWindow EXTERNAL {&USER} :
  107. DEFINE INPUT PARAMETER hwnd AS {&HWND}.
  108. DEFINE INPUT PARAMETER bInvert AS {&BOOL}.
  109. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  110. END PROCEDURE.
  111. PROCEDURE FormatMessage{&A} EXTERNAL {&KERNEL} :
  112. DEFINE INPUT PARAMETER dwFlags AS LONG.
  113. DEFINE INPUT PARAMETER lpSource AS LONG.
  114. DEFINE INPUT PARAMETER dwMessageID AS LONG.
  115. DEFINE INPUT PARAMETER dwLanguageID AS LONG.
  116. DEFINE OUTPUT PARAMETER lpBuffer AS CHAR.
  117. DEFINE INPUT PARAMETER nSize AS LONG.
  118. DEFINE INPUT PARAMETER lpArguments AS LONG.
  119. DEFINE RETURN PARAMETER nTextLength AS LONG.
  120. END PROCEDURE.
  121. PROCEDURE FreeLibrary EXTERNAL {&KERNEL} :
  122. DEFINE INPUT PARAMETER hproc AS {&HINSTANCE}.
  123. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  124. END PROCEDURE.
  125. PROCEDURE GetClientRect EXTERNAL {&USER} :
  126. DEFINE INPUT PARAMETER hwnd AS {&HWND}.
  127. DEFINE INPUT PARAMETER lpRect AS LONG. /* get-pointer-value(memptr) */
  128. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  129. END PROCEDURE.
  130. PROCEDURE GetCursorPos EXTERNAL {&USER} :
  131. DEFINE INPUT PARAMETER lpPoint AS LONG. /* memptr */
  132. DEFINE RETURN PARAMETER ReturnValue AS LONG.
  133. END PROCEDURE.
  134. PROCEDURE GetDateFormatA EXTERNAL {&KERNEL} :
  135. DEFINE INPUT PARAMETER Locale AS LONG.
  136. DEFINE INPUT PARAMETER dwFlags AS LONG.
  137. DEFINE INPUT PARAMETER lpTime AS LONG.
  138. DEFINE INPUT PARAMETER lpFormat AS LONG.
  139. DEFINE INPUT-OUTPUT PARAMETER lpDateStr AS CHAR.
  140. DEFINE INPUT PARAMETER cchDate AS LONG.
  141. DEFINE RETURN PARAMETER cchReturned AS LONG.
  142. END PROCEDURE.
  143. PROCEDURE GetDC EXTERNAL {&USER} :
  144. DEFINE INPUT PARAMETER hwnd AS {&HWND}.
  145. DEFINE RETURN PARAMETER hdc AS {&INT}.
  146. END PROCEDURE.
  147. PROCEDURE GetDeviceCaps EXTERNAL {&GDI} :
  148. DEFINE INPUT PARAMETER hdc AS {&INT}.
  149. DEFINE INPUT PARAMETER nIndex AS {&INT}.
  150. DEFINE RETURN PARAMETER capability AS {&INT}.
  151. END PROCEDURE.
  152. PROCEDURE GetLastError EXTERNAL {&KERNEL} :
  153. DEFINE RETURN PARAMETER dwMessageID AS {&INT}.
  154. END PROCEDURE.
  155. PROCEDURE GetLocaleInfoA EXTERNAL {&KERNEL} :
  156. DEFINE INPUT PARAMETER Locale AS LONG.
  157. DEFINE INPUT PARAMETER dwFlags AS LONG.
  158. DEFINE INPUT-OUTPUT PARAMETER lpLCData AS CHAR.
  159. DEFINE INPUT PARAMETER cchData AS LONG.
  160. DEFINE RETURN PARAMETER cchReturned AS LONG.
  161. END PROCEDURE.
  162. PROCEDURE GetMenu EXTERNAL {&USER} :
  163. DEFINE INPUT PARAMETER ProgHwnd AS LONG.
  164. DEFINE RETURN PARAMETER MenuHnd AS LONG.
  165. END PROCEDURE.
  166. PROCEDURE GetMenuItemCount EXTERNAL {&USER} :
  167. DEFINE INPUT PARAMETER hMenu AS LONG.
  168. DEFINE RETURN PARAMETER iCount AS LONG.
  169. END PROCEDURE.
  170. PROCEDURE GetModuleFileName{&A} EXTERNAL {&KERNEL} :
  171. DEFINE INPUT PARAMETER hInst AS {&INT}.
  172. DEFINE OUTPUT PARAMETER lpszFileName AS CHAR.
  173. DEFINE INPUT PARAMETER cbFileName AS {&INT}.
  174. DEFINE RETURN PARAMETER bSuccess AS {&INT}.
  175. END PROCEDURE.
  176. PROCEDURE GetParent EXTERNAL {&USER} :
  177. DEFINE INPUT PARAMETER thishwnd AS {&HWND}.
  178. DEFINE RETURN PARAMETER parenthwnd AS {&HWND}.
  179. END PROCEDURE.
  180. PROCEDURE GetPrivateProfileString{&A} EXTERNAL {&KERNEL} :
  181. DEFINE INPUT PARAMETER lpszSection AS CHAR.
  182. DEFINE INPUT PARAMETER lpszEntry AS LONG.
  183. DEFINE INPUT PARAMETER lpszDefault AS CHAR.
  184. DEFINE INPUT PARAMETER memBuffer AS LONG. /* memptr */
  185. DEFINE INPUT PARAMETER cbReturnBuffer AS {&INT}.
  186. DEFINE INPUT PARAMETER lpszFilename AS CHAR.
  187. DEFINE RETURN PARAMETER cbReturnedChars AS {&INT}.
  188. END PROCEDURE.
  189. PROCEDURE GetProfileString{&A} EXTERNAL {&KERNEL} :
  190. DEFINE INPUT PARAMETER lpAppName AS CHAR.
  191. DEFINE INPUT PARAMETER lpKeyName AS CHAR.
  192. DEFINE INPUT PARAMETER lpDefault AS CHAR.
  193. DEFINE OUTPUT PARAMETER lpReturnedString AS CHAR.
  194. DEFINE INPUT PARAMETER nSize AS {&INT}.
  195. DEFINE RETURN PARAMETER nReturnedChars AS {&INT}.
  196. END PROCEDURE.
  197. PROCEDURE GetSubMenu EXTERNAL {&USER} :
  198. DEFINE INPUT PARAMETER MenuHnd AS LONG.
  199. DEFINE INPUT PARAMETER nPos AS LONG.
  200. DEFINE RETURN PARAMETER SubMenuHnd AS LONG.
  201. END PROCEDURE.
  202. PROCEDURE GetSysColor EXTERNAL {&USER} :
  203. DEFINE INPUT PARAMETER nIndex AS LONG.
  204. DEFINE RETURN PARAMETER dwRgbValue AS LONG.
  205. END PROCEDURE.
  206. PROCEDURE GetSystemMenu EXTERNAL {&USER} :
  207. DEFINE INPUT PARAMETER hwnd AS {&HWND}.
  208. DEFINE INPUT PARAMETER bRevert AS {&BOOL}.
  209. DEFINE RETURN PARAMETER hMenu AS {&INT}.
  210. END PROCEDURE.
  211. PROCEDURE GetTimeFormatA EXTERNAL {&KERNEL} :
  212. DEFINE INPUT PARAMETER Locale AS LONG.
  213. DEFINE INPUT PARAMETER dwFlags AS LONG.
  214. DEFINE INPUT PARAMETER lpTime AS LONG.
  215. DEFINE INPUT PARAMETER lpFormat AS LONG.
  216. DEFINE INPUT-OUTPUT PARAMETER lpTimeStr AS CHAR.
  217. DEFINE INPUT PARAMETER cchTime AS LONG.
  218. DEFINE RETURN PARAMETER cchReturned AS LONG.
  219. END PROCEDURE.
  220. &IF "{&OPSYS}"="WIN32" &THEN
  221. PROCEDURE GetUserName{&A} EXTERNAL {&ADVAPI} :
  222. DEFINE INPUT-OUTPUT PARAMETER lpBuffer AS CHAR.
  223. DEFINE INPUT-OUTPUT PARAMETER nSize AS LONG.
  224. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  225. END PROCEDURE.
  226. &ELSE
  227. /* There is no 16-bit equivalent for this function.
  228. Create a stub OR create a wrapper to a thunked call.
  229. This would be a stub: */
  230. PROCEDURE GetUserName{&A} :
  231. DEFINE INPUT-OUTPUT PARAMETER lpBuffer AS CHAR.
  232. DEFINE INPUT-OUTPUT PARAMETER nSize AS INTEGER.
  233. DEFINE OUTPUT PARAMETER ReturnValue AS INTEGER.
  234. ASSIGN lpBuffer = ""
  235. ReturnValue = 1.
  236. END PROCEDURE.
  237. &ENDIF
  238. PROCEDURE GetVersionExA EXTERNAL {&KERNEL} :
  239. DEFINE INPUT PARAMETER lpVersionInfo AS LONG.
  240. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  241. END PROCEDURE.
  242. PROCEDURE GetWindowLong{&A} EXTERNAL {&USER} :
  243. DEFINE INPUT PARAMETER phwnd AS {&HWND}.
  244. DEFINE INPUT PARAMETER cindex AS {&INT}.
  245. DEFINE RETURN PARAMETER currentlong AS LONG.
  246. END PROCEDURE.
  247. PROCEDURE GetWindowRect EXTERNAL {&USER} :
  248. DEFINE INPUT PARAMETER hwnd AS {&HWND}.
  249. DEFINE INPUT PARAMETER lpRect AS LONG. /* get-pointer-value(memptr) */
  250. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  251. END PROCEDURE.
  252. PROCEDURE GetWindowsDirectoryA EXTERNAL {&KERNEL} :
  253. DEFINE OUTPUT PARAMETER lpBuffer AS CHAR.
  254. DEFINE INPUT PARAMETER uSize AS LONG.
  255. DEFINE RETURN PARAMETER uRet AS LONG.
  256. END PROCEDURE.
  257. PROCEDURE InvalidateRect EXTERNAL {&USER} :
  258. DEFINE INPUT PARAMETER hWnd AS {&HWND}.
  259. DEFINE INPUT PARAMETER lpRect AS {&INT}.
  260. DEFINE INPUT PARAMETER bErase AS {&BOOL}.
  261. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  262. END PROCEDURE.
  263. PROCEDURE LoadLibrary{&A} EXTERNAL {&KERNEL} :
  264. DEFINE INPUT PARAMETER libname AS CHAR.
  265. DEFINE RETURN PARAMETER hproc AS {&HINSTANCE}.
  266. END PROCEDURE.
  267. PROCEDURE MAPISendMail EXTERNAL {&MAPI} :
  268. DEFINE INPUT PARAMETER lhSession AS LONG.
  269. DEFINE INPUT PARAMETER ulUIParam AS LONG.
  270. DEFINE INPUT PARAMETER lpMessage AS LONG. /* get-pointer-value(memptr) */
  271. DEFINE INPUT PARAMETER flFlags AS LONG.
  272. DEFINE INPUT PARAMETER ulReserved AS LONG.
  273. DEFINE RETURN PARAMETER wretcode AS {&INT}.
  274. END PROCEDURE.
  275. PROCEDURE mciGetErrorString{&A} EXTERNAL {&MMEDIA} :
  276. DEFINE INPUT PARAMETER mciError AS {&INT}.
  277. DEFINE OUTPUT PARAMETER lpszErrorText AS CHAR.
  278. DEFINE INPUT PARAMETER cchErrorText AS {&INT}.
  279. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  280. END PROCEDURE.
  281. PROCEDURE mciSendCommand{&A} EXTERNAL {&MMEDIA} :
  282. DEFINE INPUT PARAMETER IDDevice AS {&INT}.
  283. DEFINE INPUT PARAMETER uMsg AS {&INT}.
  284. DEFINE INPUT PARAMETER fdwCommand AS {&INT}.
  285. DEFINE INPUT PARAMETER dwParam AS LONG.
  286. DEFINE RETURN PARAMETER mciError AS {&INT}.
  287. END PROCEDURE.
  288. PROCEDURE OpenPrinter{&A} EXTERNAL {&WINSPOOL} :
  289. DEFINE INPUT PARAMETER PC_PRINTER_NAME AS CHAR.
  290. DEFINE INPUT PARAMETER VM_PRINTER_HANDLE AS LONG.
  291. DEFINE INPUT PARAMETER VM_DEFAULTS AS LONG.
  292. DEFINE RETURN PARAMETER VI_RETURN_VALUE AS {&BOOL}.
  293. END PROCEDURE.
  294. PROCEDURE PostMessage{&A} EXTERNAL {&USER} :
  295. DEFINE INPUT PARAMETER hwnd AS {&HWND}.
  296. DEFINE INPUT PARAMETER umsg AS {&INT}.
  297. DEFINE INPUT PARAMETER wparam AS {&INT}.
  298. DEFINE INPUT PARAMETER lparam AS LONG.
  299. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  300. END PROCEDURE.
  301. PROCEDURE PrinterProperties EXTERNAL {&WINSPOOL} :
  302. DEFINE INPUT PARAMETER VH_PARENT AS LONG.
  303. DEFINE INPUT PARAMETER VH_PRINTER_HANDLE AS LONG.
  304. DEFINE RETURN PARAMETER VI_RETURN_VALUE AS {&BOOL}.
  305. END PROCEDURE.
  306. PROCEDURE RegOpenKeyA EXTERNAL {&ADVAPI} :
  307. DEFINE INPUT PARAMETER hkey AS LONG.
  308. DEFINE INPUT PARAMETER lpszSubKey AS CHAR.
  309. DEFINE OUTPUT PARAMETER phkResult AS LONG.
  310. DEFINE RETURN PARAMETER lpResult AS LONG.
  311. END PROCEDURE.
  312. PROCEDURE RegCloseKey EXTERNAL {&ADVAPI} :
  313. DEFINE INPUT PARAMETER hkey AS LONG.
  314. DEFINE RETURN PARAMETER lpresult AS LONG.
  315. END PROCEDURE.
  316. PROCEDURE RegEnumKeyA EXTERNAL {&ADVAPI} :
  317. DEFINE INPUT PARAMETER hKey AS LONG.
  318. DEFINE INPUT PARAMETER iSubKey AS LONG.
  319. DEFINE OUTPUT PARAMETER lpszName AS CHAR.
  320. DEFINE INPUT PARAMETER cchName AS LONG.
  321. DEFINE RETURN PARAMETER lpresult AS LONG.
  322. END PROCEDURE.
  323. PROCEDURE RegQueryValueExA EXTERNAL {&ADVAPI} :
  324. DEFINE INPUT PARAMETER hkey AS LONG.
  325. DEFINE INPUT PARAMETER lpValueName AS CHAR.
  326. DEFINE INPUT PARAMETER lpdwReserved AS LONG.
  327. DEFINE OUTPUT PARAMETER lpdwType AS LONG.
  328. DEFINE INPUT PARAMETER lpbData AS LONG. /* memptr */
  329. DEFINE INPUT-OUTPUT PARAMETER lpcbData AS LONG.
  330. DEFINE RETURN PARAMETER lpresult AS LONG.
  331. END PROCEDURE.
  332. PROCEDURE RegSetValueExA EXTERNAL {&ADVAPI} :
  333. DEFINE INPUT PARAMETER hkey AS LONG.
  334. DEFINE INPUT PARAMETER lpValueName AS CHAR.
  335. DEFINE INPUT PARAMETER Reserved AS LONG.
  336. DEFINE INPUT PARAMETER dwType AS LONG.
  337. DEFINE INPUT PARAMETER lpData AS LONG. /* memptr */
  338. DEFINE INPUT PARAMETER cbData AS LONG.
  339. DEFINE RETURN PARAMETER lpresult AS LONG.
  340. END PROCEDURE.
  341. PROCEDURE ReleaseDC EXTERNAL {&USER} :
  342. DEFINE INPUT PARAMETER hwnd AS {&HWND}.
  343. DEFINE INPUT PARAMETER hdc AS {&INT}.
  344. DEFINE RETURN PARAMETER ok AS {&INT}.
  345. END PROCEDURE.
  346. PROCEDURE RemoveMenu EXTERNAL {&USER} :
  347. DEFINE INPUT PARAMETER hMenu AS LONG.
  348. DEFINE INPUT PARAMETER nPosition AS LONG.
  349. DEFINE INPUT PARAMETER wFlags AS LONG.
  350. DEFINE RETURN PARAMETER iRetCode AS LONG.
  351. END PROCEDURE.
  352. PROCEDURE ScreenToClient EXTERNAL {&USER} :
  353. DEFINE INPUT PARAMETER hWnd AS LONG.
  354. DEFINE INPUT PARAMETER lpPoint AS LONG. /* memptr */
  355. DEFINE RETURN PARAMETER ReturnValue AS LONG.
  356. END PROCEDURE.
  357. PROCEDURE SendMessage{&A} EXTERNAL {&USER} :
  358. DEFINE INPUT PARAMETER hwnd AS {&HWND}.
  359. DEFINE INPUT PARAMETER umsg AS {&INT}.
  360. DEFINE INPUT PARAMETER wparam AS {&INT}.
  361. DEFINE INPUT PARAMETER lparam AS LONG.
  362. DEFINE RETURN PARAMETER ReturnValue AS LONG.
  363. END PROCEDURE.
  364. PROCEDURE SetCursorPos EXTERNAL {&USER} :
  365. DEFINE INPUT PARAMETER x-pos AS {&INT}.
  366. DEFINE INPUT PARAMETER y-pos AS {&INT}.
  367. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  368. END PROCEDURE.
  369. PROCEDURE SetParent EXTERNAL {&USER} :
  370. DEFINE INPUT PARAMETER hwndChild AS {&HWND}.
  371. DEFINE INPUT PARAMETER hwndNewParent AS {&HWND}.
  372. DEFINE RETURN PARAMETER hwndOldParent AS {&HWND}.
  373. END PROCEDURE.
  374. PROCEDURE SetSysColors EXTERNAL {&USER} :
  375. DEFINE INPUT PARAMETER cDspElements AS LONG.
  376. DEFINE INPUT PARAMETER lpnDspElements AS LONG.
  377. DEFINE INPUT PARAMETER lpdwRgbValues AS LONG.
  378. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  379. END PROCEDURE.
  380. PROCEDURE SetWindowContextHelpId EXTERNAL {&USER} :
  381. DEFINE INPUT PARAMETER hwnd AS {&HWND}.
  382. DEFINE INPUT PARAMETER ContextID AS {&INT}.
  383. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  384. END PROCEDURE.
  385. PROCEDURE SetWindowLong{&A} EXTERNAL {&USER} :
  386. DEFINE INPUT PARAMETER phwnd AS {&HWND}.
  387. DEFINE INPUT PARAMETER cindex AS {&INT}.
  388. DEFINE INPUT PARAMETER newlong AS LONG.
  389. DEFINE RETURN PARAMETER oldlong AS LONG.
  390. END PROCEDURE.
  391. PROCEDURE SetWindowPos EXTERNAL {&USER} :
  392. DEFINE INPUT PARAMETER hwnd AS {&HWND}.
  393. DEFINE INPUT PARAMETER hwndInsertAfter AS {&HWND}.
  394. DEFINE INPUT PARAMETER x AS {&INT}.
  395. DEFINE INPUT PARAMETER y AS {&INT}.
  396. DEFINE INPUT PARAMETER cx AS {&INT}.
  397. DEFINE INPUT PARAMETER cy AS {&INT}.
  398. DEFINE INPUT PARAMETER fuFlags AS LONG.
  399. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  400. END PROCEDURE.
  401. PROCEDURE SHBrowseForFolder EXTERNAL {&SHELL} :
  402. DEFINE INPUT PARAMETER lpbi AS LONG.
  403. DEFINE RETURN PARAMETER lpItemIDList AS LONG.
  404. END PROCEDURE.
  405. PROCEDURE SHGetPathFromIDList EXTERNAL {&SHELL} :
  406. DEFINE INPUT PARAMETER lpItemIDList AS LONG.
  407. DEFINE OUTPUT PARAMETER pszPath AS CHAR.
  408. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  409. END PROCEDURE.
  410. PROCEDURE ShellExecute{&A} EXTERNAL {&SHELL} :
  411. DEFINE INPUT PARAMETER hwnd AS {&HWND}.
  412. DEFINE INPUT PARAMETER lpOperation AS CHAR.
  413. DEFINE INPUT PARAMETER lpFile AS CHAR.
  414. DEFINE INPUT PARAMETER lpParameters AS CHAR.
  415. DEFINE INPUT PARAMETER lpDirectory AS CHAR.
  416. DEFINE INPUT PARAMETER nShowCmd AS {&INT}.
  417. DEFINE RETURN PARAMETER hInstance AS {&INT}.
  418. END PROCEDURE.
  419. PROCEDURE ShellExecuteExA EXTERNAL {&SHELL} :
  420. DEFINE INPUT PARAMETER lpExecInfo AS LONG.
  421. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  422. END PROCEDURE.
  423. PROCEDURE ShowScrollBar EXTERNAL {&USER} :
  424. DEFINE INPUT PARAMETER hWnd AS {&HWND}.
  425. DEFINE INPUT PARAMETER fnBar AS {&INT}.
  426. DEFINE INPUT PARAMETER fShow AS {&BOOL}.
  427. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  428. END PROCEDURE.
  429. PROCEDURE ShowWindow EXTERNAL {&USER} :
  430. DEFINE INPUT PARAMETER hWnd AS {&HWND}.
  431. DEFINE INPUT PARAMETER nCmdShow AS {&INT}.
  432. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  433. END PROCEDURE.
  434. PROCEDURE StartDoc{&A} EXTERNAL {&GDI} :
  435. DEFINE INPUT PARAMETER hdc AS LONG.
  436. DEFINE INPUT PARAMETER lpdi AS LONG.
  437. DEFINE RETURN PARAMETER JobId AS LONG.
  438. END PROCEDURE.
  439. PROCEDURE StartPage EXTERNAL {&GDI} :
  440. DEFINE INPUT PARAMETER hdc AS LONG.
  441. DEFINE RETURN PARAMETER uRet AS LONG.
  442. END PROCEDURE.
  443. PROCEDURE SystemParametersInfo{&A} EXTERNAL {&USER} :
  444. DEFINE INPUT PARAMETER uiAction AS {&INT}.
  445. DEFINE INPUT PARAMETER uiParam AS {&INT}.
  446. DEFINE INPUT PARAMETER pvParam AS LONG. /* get-pointer-value(memptr) */
  447. DEFINE INPUT PARAMETER fWinIni AS {&INT}.
  448. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  449. END PROCEDURE.
  450. PROCEDURE TextOut{&A} EXTERNAL {&GDI} :
  451. DEFINE INPUT PARAMETER hdc AS LONG.
  452. DEFINE INPUT PARAMETER nXstart AS LONG.
  453. DEFINE INPUT PARAMETER nYstart AS LONG.
  454. DEFINE INPUT PARAMETER lpString AS CHAR.
  455. DEFINE INPUT PARAMETER cbString AS LONG.
  456. DEFINE RETURN PARAMETER uRet AS LONG.
  457. END PROCEDURE.
  458. PROCEDURE WaitForSingleObject EXTERNAL {&KERNEL} :
  459. DEFINE INPUT PARAMETER hObject AS {&INT}.
  460. DEFINE INPUT PARAMETER dwTimeout AS LONG.
  461. DEFINE RETURN PARAMETER ReturnValue AS LONG.
  462. END PROCEDURE.
  463. PROCEDURE WinExec EXTERNAL {&KERNEL} :
  464. DEFINE INPUT PARAMETER lpszCmdLine AS CHAR.
  465. DEFINE INPUT PARAMETER fuCmdShow AS {&INT}.
  466. DEFINE RETURN PARAMETER nTask AS {&INT}.
  467. END PROCEDURE.
  468. PROCEDURE WinHelp{&A} EXTERNAL {&USER} :
  469. DEFINE INPUT PARAMETER hwndmain AS {&HWND}.
  470. DEFINE INPUT PARAMETER lpszHelp AS CHAR.
  471. DEFINE INPUT PARAMETER uCommand AS {&INT}.
  472. DEFINE INPUT PARAMETER dwData AS LONG.
  473. DEFINE RETURN PARAMETER ReturnValue AS {&BOOL}.
  474. END PROCEDURE.
  475. PROCEDURE WritePrivateProfileString{&A} EXTERNAL {&KERNEL} :
  476. DEFINE INPUT PARAMETER lpszSection AS CHAR.
  477. DEFINE INPUT PARAMETER lpszEntry AS CHAR.
  478. DEFINE INPUT PARAMETER lpszString AS CHAR.
  479. DEFINE INPUT PARAMETER lpszFilename AS CHAR.
  480. DEFINE RETURN PARAMETER lpszValue AS {&INT}.
  481. END PROCEDURE.
  482. PROCEDURE Sleep EXTERNAL {&KERNEL} :
  483. DEFINE INPUT PARAMETER dwMilliseconds AS LONG.
  484. END PROCEDURE.
  485. PROCEDURE OpenProcess EXTERNAL {&KERNEL} :
  486. DEFINE INPUT PARAMETER dwDesiredAccess AS LONG.
  487. DEFINE INPUT PARAMETER bInheritHandle AS LONG.
  488. DEFINE INPUT PARAMETER dwProcessId AS LONG.
  489. DEFINE RETURN PARAMETER hProcess AS LONG.
  490. END PROCEDURE.
  491. PROCEDURE GetExitCodeProcess EXTERNAL {&KERNEL} :
  492. DEFINE INPUT PARAMETER hProcess AS LONG.
  493. DEFINE OUTPUT PARAMETER ExitCode AS LONG.
  494. DEFINE RETURN PARAMETER ReturnValue AS LONG.
  495. END PROCEDURE.
  496. PROCEDURE WaitForInputIdle EXTERNAL {&USER} :
  497. DEFINE INPUT PARAMETER hProcess AS LONG.
  498. DEFINE INPUT PARAMETER dwMilliseconds AS LONG.
  499. DEFINE RETURN PARAMETER ReturnValue AS LONG.
  500. END PROCEDURE.
  501. PROCEDURE TerminateProcess EXTERNAL {&KERNEL} :
  502. DEFINE INPUT PARAMETER hProcess AS LONG.
  503. DEFINE INPUT PARAMETER uExitCode AS LONG.
  504. DEFINE RETURN PARAMETER ReturnValue AS LONG.
  505. END PROCEDURE.