Changeset 1084 for trunk/src/user32/user32.cpp
- Timestamp:
- Sep 28, 1999, 6:35:06 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/user32.cpp
r1078 r1084 1 /* $Id: user32.cpp,v 1.3 5 1999-09-28 12:44:33 dengertExp $ */1 /* $Id: user32.cpp,v 1.36 1999-09-28 16:35:06 cbratschi Exp $ */ 2 2 3 3 /* … … 475 475 return(rc); 476 476 } 477 //******************************************************************************478 477 479 478 #if 0 480 //******************************************************************************481 479 /* Caret Functions */ 482 480 … … 733 731 } 734 732 735 /* Other Functions */ 736 733 /* Mouse Input Functions */ 734 735 /***************************************************************************** 736 * Name : BOOL WIN32API DragDetect 737 * Purpose : The DragDetect function captures the mouse and tracks its movement 738 * Parameters: HWND hwnd 739 * POINT pt 740 * Variables : 741 * Result : If the user moved the mouse outside of the drag rectangle while 742 * holding the left button down, the return value is TRUE. 743 * If the user did not move the mouse outside of the drag rectangle 744 * while holding the left button down, the return value is FALSE. 745 * Remark : 746 * Status : UNTESTED STUB 747 * 748 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 749 *****************************************************************************/ 750 BOOL WIN32API DragDetect(HWND hwnd, 751 POINT pt) 752 { 753 dprintf(("USER32:DragDetect(%08xh,...) not implemented.\n", 754 hwnd)); 755 756 return (FALSE); 757 } 758 //****************************************************************************** 759 //****************************************************************************** 760 HWND WIN32API GetCapture(void) 761 { 762 #ifdef DEBUG 763 WriteLog("USER32: GetCapture\n"); 764 #endif 765 return Win32Window::OS2ToWin32Handle(O32_GetCapture()); 766 } 767 //****************************************************************************** 768 //****************************************************************************** 769 UINT WIN32API GetDoubleClickTime(void) 770 { 771 #ifdef DEBUG 772 WriteLog("USER32: GetDoubleClickTime\n"); 773 #endif 774 return O32_GetDoubleClickTime(); 775 } 776 /***************************************************************************** 777 * Name : VOID WIN32API mouse_event 778 * Purpose : The mouse_event function synthesizes mouse motion and button clicks. 779 * Parameters: DWORD dwFlags flags specifying various motion/click variants 780 * DWORD dx horizontal mouse position or position change 781 * DWORD dy vertical mouse position or position change 782 * DWORD cButtons unused, reserved for future use, set to zero 783 * DWORD dwExtraInfo 32 bits of application-defined information 784 * Variables : 785 * Result : 786 * Remark : 787 * Status : UNTESTED STUB 788 * 789 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 790 *****************************************************************************/ 791 VOID WIN32API mouse_event(DWORD dwFlags, 792 DWORD dx, 793 DWORD dy, 794 DWORD cButtons, 795 DWORD dwExtraInfo) 796 { 797 dprintf(("USER32:mouse_event (%08xh,%u,%u,%u,%08x) not implemented.\n", 798 dwFlags, 799 dx, 800 dy, 801 cButtons, 802 dwExtraInfo)); 803 } 804 //****************************************************************************** 805 //****************************************************************************** 806 BOOL WIN32API ReleaseCapture(void) 807 { 808 #ifdef DEBUG 809 WriteLog("USER32: ReleaseCapture\n"); 810 #endif 811 return O32_ReleaseCapture(); 812 } 813 //****************************************************************************** 814 //****************************************************************************** 815 HWND WIN32API SetCapture( HWND hwnd) 816 { 817 #ifdef DEBUG 818 WriteLog("USER32: SetCapture\n"); 819 #endif 820 hwnd = Win32Window::Win32ToOS2Handle(hwnd); 821 return Win32Window::OS2ToWin32Handle(O32_SetCapture(hwnd)); 822 } 823 //****************************************************************************** 824 //****************************************************************************** 825 BOOL WIN32API SetDoubleClickTime( UINT uInterval) 826 { 827 #ifdef DEBUG 828 WriteLog("USER32: SetDoubleClickTime\n"); 829 #endif 830 return O32_SetDoubleClickTime(uInterval); 831 } 832 //****************************************************************************** 833 //****************************************************************************** 834 BOOL WIN32API SwapMouseButton( BOOL fSwap) 835 { 836 #ifdef DEBUG 837 WriteLog("USER32: SwapMouseButton\n"); 838 #endif 839 return O32_SwapMouseButton(fSwap); 840 } 841 842 /* Error Functions */ 843 844 BOOL WIN32API ExitWindowsEx( UINT uFlags, DWORD dwReserved) 845 { 846 #ifdef DEBUG 847 WriteLog("USER32: ExitWindowsEx\n"); 848 #endif 849 return O32_ExitWindowsEx(uFlags,dwReserved); 850 } 851 //****************************************************************************** 852 //****************************************************************************** 737 853 BOOL WIN32API MessageBeep( UINT uType) 738 854 { … … 766 882 } 767 883 //****************************************************************************** 768 //****************************************************************************** 884 //2nd parameter not used according to SDK (yet?) 885 //****************************************************************************** 886 VOID WIN32API SetLastErrorEx(DWORD dwErrCode, DWORD dwType) 887 { 888 #ifdef DEBUG 889 WriteLog("USER32: SetLastErrorEx\n"); 890 #endif 891 SetLastError(dwErrCode); 892 } 893 894 /* Accessibility Functions */ 895 769 896 int WIN32API GetSystemMetrics(int nIndex) 770 897 { … … 802 929 rc = GetSystemMetrics(SM_CYMINIMIZED); 803 930 break; 931 case SM_CXICON: 932 case SM_CYICON: 933 rc = 32; //CB: Win32: only 32x32, OS/2 32x32/40x40 934 // we must implement 32x32 for all screen resolutions 935 break; 804 936 case SM_CXSMICON: //recommended size of small icons (TODO: adjust to screen res.) 805 937 rc = 16; … … 878 1010 #endif 879 1011 return(rc); 880 }881 //******************************************************************************882 //******************************************************************************883 #if 0884 UINT WIN32API SetTimer( HWND hwnd, UINT idTimer, UINT uTimeout, TIMERPROC tmprc)885 {886 #ifdef DEBUG887 WriteLog("USER32: SetTimer INCORRECT CALLING CONVENTION FOR HANDLER!!!!!\n");888 #endif889 hwnd = Win32Window::Win32ToOS2Handle(hwnd);890 //SvL: Write callback handler class for this one891 //CB: replace892 return O32_SetTimer(hwnd,idTimer,uTimeout,(TIMERPROC_O32)tmprc);893 }894 //******************************************************************************895 //******************************************************************************896 BOOL WIN32API KillTimer(HWND hWnd, UINT uIDEvent)897 {898 #ifdef DEBUG899 WriteLog("USER32: KillTimer\n");900 #endif901 hWnd = Win32Window::Win32ToOS2Handle(hWnd);902 //WinStopTimer903 //CB: replace904 return O32_KillTimer(hWnd,uIDEvent);905 }906 #endif907 //******************************************************************************908 //******************************************************************************909 //******************************************************************************910 //TODO:How can we emulate this one in OS/2???911 //******************************************************************************912 DWORD WIN32API WaitForInputIdle(HANDLE hProcess, DWORD dwTimeOut)913 {914 #ifdef DEBUG915 WriteLog("USER32: WaitForInputIdle (Not Implemented) %d\n", dwTimeOut);916 #endif917 918 if(dwTimeOut == INFINITE) return(0);919 920 // DosSleep(dwTimeOut/16);921 return(0);922 }923 //******************************************************************************924 //******************************************************************************925 BOOL WIN32API WinHelpA( HWND hwnd, LPCSTR lpszHelp, UINT uCommand, DWORD dwData)926 {927 #ifdef DEBUG928 WriteLog("USER32: WinHelp not implemented %s\n", lpszHelp);929 #endif930 // hwnd = Win32Window::Win32ToOS2Handle(hwnd);931 // return O32_WinHelp(arg1, arg2, arg3, arg4);932 933 return(TRUE);934 }935 //******************************************************************************936 //SvL: 24-6-'97 - Added937 //TODO: Not implemented938 //******************************************************************************939 WORD WIN32API GetAsyncKeyState(INT nVirtKey)940 {941 #ifdef DEBUG942 //// WriteLog("USER32: GetAsyncKeyState Not implemented\n");943 #endif944 return 0;945 }946 //******************************************************************************947 //SvL: 24-6-'97 - Added948 //******************************************************************************949 WORD WIN32API VkKeyScanA( char ch)950 {951 #ifdef DEBUG952 WriteLog("USER32: VkKeyScanA\n");953 #endif954 return O32_VkKeyScan(ch);955 }956 //******************************************************************************957 //SvL: 24-6-'97 - Added958 //******************************************************************************959 SHORT WIN32API GetKeyState( int nVirtKey)960 {961 #ifdef DEBUG962 WriteLog("USER32: GetKeyState %d\n", nVirtKey);963 #endif964 return O32_GetKeyState(nVirtKey);965 }966 //******************************************************************************967 //******************************************************************************968 HWND WIN32API SetCapture( HWND arg1)969 {970 #ifdef DEBUG971 WriteLog("USER32: SetCapture\n");972 #endif973 return O32_SetCapture(arg1);974 }975 //******************************************************************************976 //******************************************************************************977 BOOL WIN32API ReleaseCapture(void)978 {979 #ifdef DEBUG980 WriteLog("USER32: ReleaseCapture\n");981 #endif982 return O32_ReleaseCapture();983 }984 //******************************************************************************985 //******************************************************************************986 DWORD WIN32API MsgWaitForMultipleObjects( DWORD arg1, LPHANDLE arg2, BOOL arg3, DWORD arg4, DWORD arg5)987 {988 #ifdef DEBUG989 WriteLog("USER32: MsgWaitForMultipleObjects\n");990 #endif991 return O32_MsgWaitForMultipleObjects(arg1, arg2, arg3, arg4, arg5);992 }993 //******************************************************************************994 //******************************************************************************995 BOOL WIN32API CheckRadioButton( HWND arg1, UINT arg2, UINT arg3, UINT arg4)996 {997 #ifdef DEBUG998 WriteLog("USER32: CheckRadioButton\n");999 #endif1000 //CB: check radio buttons in interval1001 if (arg2 > arg3) return (FALSE);1002 for (UINT x=arg2;x <= arg3;x++)1003 {1004 SendDlgItemMessageA(arg1,x,BM_SETCHECK,(x == arg4) ? BST_CHECKED : BST_UNCHECKED,0);1005 }1006 return (TRUE);1007 }1008 //******************************************************************************1009 //******************************************************************************1010 BOOL WIN32API EndDeferWindowPos( HDWP arg1)1011 {1012 #ifdef DEBUG1013 WriteLog("USER32: EndDeferWindowPos\n");1014 #endif1015 return O32_EndDeferWindowPos(arg1);1016 }1017 //******************************************************************************1018 //******************************************************************************1019 INT WIN32API ExcludeUpdateRgn( HDC arg1, HWND arg2)1020 {1021 #ifdef DEBUG1022 WriteLog("USER32: ExcludeUpdateRgn\n");1023 #endif1024 return O32_ExcludeUpdateRgn(arg1, arg2);1025 }1026 //******************************************************************************1027 //******************************************************************************1028 BOOL WIN32API ExitWindowsEx( UINT arg1, DWORD arg2)1029 {1030 #ifdef DEBUG1031 WriteLog("USER32: ExitWindowsEx\n");1032 #endif1033 return O32_ExitWindowsEx(arg1, arg2);1034 }1035 //******************************************************************************1036 //******************************************************************************1037 int WIN32API FillRect(HDC arg1, const RECT * arg2, HBRUSH arg3)1038 {1039 #ifdef DEBUG1040 WriteLog("USER32: FillRect (%d,%d)(%d,%d) brush %X\n", arg2->left, arg2->top, arg2->right, arg2->bottom, arg3);1041 #endif1042 return O32_FillRect(arg1, arg2, arg3);1043 }1044 //******************************************************************************1045 //******************************************************************************1046 HWND WIN32API FindWindowW( LPCWSTR arg1, LPCWSTR arg2)1047 {1048 char *astring1 = UnicodeToAsciiString((LPWSTR)arg1);1049 char *astring2 = UnicodeToAsciiString((LPWSTR)arg2);1050 HWND rc;1051 1052 #ifdef DEBUG1053 WriteLog("USER32: FindWindowW\n");1054 #endif1055 rc = O32_FindWindow(astring1, astring2);1056 FreeAsciiString(astring1);1057 FreeAsciiString(astring2);1058 return rc;1059 }1060 //******************************************************************************1061 //******************************************************************************1062 int WIN32API FrameRect( HDC arg1, const RECT * arg2, HBRUSH arg3)1063 {1064 #ifdef DEBUG1065 WriteLog("USER32: FrameRect\n");1066 #endif1067 return O32_FrameRect(arg1, arg2, arg3);1068 }1069 //******************************************************************************1070 //******************************************************************************1071 HWND WIN32API GetCapture(void)1072 {1073 #ifdef DEBUG1074 WriteLog("USER32: GetCapture\n");1075 #endif1076 return O32_GetCapture();1077 }1078 //******************************************************************************1079 //******************************************************************************1080 UINT WIN32API GetDoubleClickTime(void)1081 {1082 #ifdef DEBUG1083 WriteLog("USER32: GetDoubleClickTime\n");1084 #endif1085 return O32_GetDoubleClickTime();1086 }1087 //******************************************************************************1088 //******************************************************************************1089 HWND WIN32API GetForegroundWindow(void)1090 {1091 #ifdef DEBUG1092 WriteLog("USER32: GetForegroundWindow\n");1093 #endif1094 return O32_GetForegroundWindow();1095 }1096 //******************************************************************************1097 //******************************************************************************1098 int WIN32API GetKeyNameTextA( LPARAM arg1, LPSTR arg2, int arg3)1099 {1100 #ifdef DEBUG1101 WriteLog("USER32: GetKeyNameTextA\n");1102 #endif1103 return O32_GetKeyNameText(arg1, arg2, arg3);1104 }1105 //******************************************************************************1106 //******************************************************************************1107 int WIN32API GetKeyNameTextW( LPARAM arg1, LPWSTR arg2, int arg3)1108 {1109 #ifdef DEBUG1110 WriteLog("USER32: GetKeyNameTextW DOES NOT WORK\n");1111 #endif1112 // NOTE: This will not work as is (needs UNICODE support)1113 return 0;1114 // return O32_GetKeyNameText(arg1, arg2, arg3);1115 }1116 //******************************************************************************1117 //******************************************************************************1118 int WIN32API GetKeyboardType( int arg1)1119 {1120 #ifdef DEBUG1121 WriteLog("USER32: GetKeyboardType\n");1122 #endif1123 return O32_GetKeyboardType(arg1);1124 }1125 //******************************************************************************1126 //******************************************************************************1127 HWND WIN32API GetLastActivePopup( HWND arg1)1128 {1129 #ifdef DEBUG1130 WriteLog("USER32: GetLastActivePopup\n");1131 #endif1132 return O32_GetLastActivePopup(arg1);1133 }1134 //******************************************************************************1135 //******************************************************************************1136 //******************************************************************************1137 //******************************************************************************1138 DWORD WIN32API GetQueueStatus( UINT arg1)1139 {1140 #ifdef DEBUG1141 WriteLog("USER32: GetQueueStatus\n");1142 #endif1143 return O32_GetQueueStatus(arg1);1144 }1145 //******************************************************************************1146 //******************************************************************************1147 DWORD WIN32API GetTabbedTextExtentA( HDC arg1, LPCSTR arg2, int arg3, int arg4, int * arg5)1148 {1149 #ifdef DEBUG1150 WriteLog("USER32: GetTabbedTextExtentA\n");1151 #endif1152 return O32_GetTabbedTextExtent(arg1, arg2, arg3, arg4, arg5);1153 }1154 //******************************************************************************1155 //******************************************************************************1156 DWORD WIN32API GetTabbedTextExtentW( HDC arg1, LPCWSTR arg2, int arg3, int arg4, int * arg5)1157 {1158 char *astring = UnicodeToAsciiString((LPWSTR)arg2);1159 DWORD rc;1160 1161 #ifdef DEBUG1162 WriteLog("USER32: GetTabbedTextExtentW\n");1163 #endif1164 rc = O32_GetTabbedTextExtent(arg1, astring, arg3, arg4, arg5);1165 FreeAsciiString(astring);1166 return rc;1167 }1168 //******************************************************************************1169 //******************************************************************************1170 #if 01171 int WIN32API GetUpdateRgn( HWND arg1, HRGN arg2, BOOL arg3)1172 {1173 #ifdef DEBUG1174 WriteLog("USER32: GetUpdateRgn\n");1175 #endif1176 return O32_GetUpdateRgn(arg1, arg2, arg3);1177 }1178 #endif1179 //******************************************************************************1180 1181 1182 //******************************************************************************1183 //******************************************************************************1184 //******************************************************************************1185 DWORD WIN32API GetWindowThreadProcessId(HWND arg1, PDWORD arg2)1186 {1187 #ifdef DEBUG1188 WriteLog("USER32: GetWindowThreadProcessId\n");1189 #endif1190 return O32_GetWindowThreadProcessId(arg1, arg2);1191 }1192 //******************************************************************************1193 //******************************************************************************1194 #if 01195 BOOL WIN32API InvalidateRgn( HWND arg1, HRGN arg2, BOOL arg3)1196 {1197 #ifdef DEBUG1198 WriteLog("USER32: InvalidateRgn\n");1199 #endif1200 return O32_InvalidateRgn(arg1, arg2, arg3);1201 }1202 #endif1203 //******************************************************************************1204 //******************************************************************************1205 BOOL WIN32API InvertRect( HDC arg1, const RECT * arg2)1206 {1207 #ifdef DEBUG1208 WriteLog("USER32: InvertRect\n");1209 #endif1210 return O32_InvertRect(arg1, arg2);1211 }1212 //******************************************************************************1213 //******************************************************************************1214 BOOL WIN32API MapDialogRect( HWND arg1, PRECT arg2)1215 {1216 #ifdef DEBUG1217 WriteLog("USER32: MapDialogRect\n");1218 #endif1219 return O32_MapDialogRect(arg1, arg2);1220 }1221 //******************************************************************************1222 //******************************************************************************1223 UINT WIN32API MapVirtualKeyA( UINT arg1, UINT arg2)1224 {1225 #ifdef DEBUG1226 WriteLog("USER32: MapVirtualKeyA\n");1227 #endif1228 return O32_MapVirtualKey(arg1, arg2);1229 }1230 //******************************************************************************1231 //******************************************************************************1232 UINT WIN32API MapVirtualKeyW( UINT arg1, UINT arg2)1233 {1234 #ifdef DEBUG1235 WriteLog("USER32: MapVirtualKeyW\n");1236 #endif1237 // NOTE: This will not work as is (needs UNICODE support)1238 return O32_MapVirtualKey(arg1, arg2);1239 }1240 //******************************************************************************1241 //******************************************************************************1242 int WIN32API MapWindowPoints( HWND arg1, HWND arg2, LPPOINT arg3, UINT arg4)1243 {1244 #ifdef DEBUG1245 WriteLog("USER32: MapWindowPoints\n");1246 #endif1247 return O32_MapWindowPoints(arg1, arg2, arg3, arg4);1248 }1249 //******************************************************************************1250 //******************************************************************************1251 BOOL WIN32API ScreenToClient (HWND hwnd, LPPOINT pt)1252 {1253 #ifdef DEBUG1254 WriteLog("USER32: ScreenToClient\n");1255 #endif1256 Win32BaseWindow *wnd;1257 PRECT rcl;1258 1259 if (!hwnd) return (TRUE);1260 wnd = Win32BaseWindow::GetWindowFromHandle (hwnd);1261 if (!wnd) return (TRUE);1262 1263 rcl = wnd->getClientRect();1264 pt->y = ScreenHeight - pt->y;1265 OSLibWinMapWindowPoints (OSLIB_HWND_DESKTOP, wnd->getOS2WindowHandle(), (OSLIBPOINT *)pt, 1);1266 pt->y = (rcl->bottom - rcl->top) - pt->y;1267 return (TRUE);1268 }1269 //******************************************************************************1270 //******************************************************************************1271 #if 01272 BOOL WIN32API ScrollDC( HDC arg1, int arg2, int arg3, const RECT * arg4, const RECT * arg5, HRGN arg6, PRECT arg7)1273 {1274 #ifdef DEBUG1275 WriteLog("USER32: ScrollDC\n");1276 #endif1277 return O32_ScrollDC(arg1, arg2, arg3, arg4, arg5, arg6, arg7);1278 }1279 #endif1280 //******************************************************************************1281 //******************************************************************************1282 BOOL WIN32API SetDoubleClickTime( UINT arg1)1283 {1284 #ifdef DEBUG1285 WriteLog("USER32: SetDoubleClickTime\n");1286 #endif1287 return O32_SetDoubleClickTime(arg1);1288 }1289 //******************************************************************************1290 //******************************************************************************1291 BOOL WIN32API SwapMouseButton( BOOL arg1)1292 {1293 #ifdef DEBUG1294 WriteLog("USER32: SwapMouseButton\n");1295 #endif1296 return O32_SwapMouseButton(arg1);1297 1012 } 1298 1013 //****************************************************************************** … … 1334 1049 memset(cmetric, 0, sizeof(NONCLIENTMETRICSA)); 1335 1050 cmetric->cbSize = sizeof(NONCLIENTMETRICSA); 1336 //CB: font info not valid, needs improvements 1337 O32_SystemParametersInfo(SPI_GETICONTITLELOGFONT, 0, (LPVOID)&(cmetric->lfCaptionFont),0); 1338 O32_SystemParametersInfo(SPI_GETICONTITLELOGFONT, 0, (LPVOID)&(cmetric->lfMenuFont),0); 1339 //CB: experimental change for statusbar (and tooltips) 1340 1341 //O32_SystemParametersInfo(SPI_GETICONTITLELOGFONT, 0, (LPVOID)&(cmetric->lfStatusFont),0); 1051 1052 //CB: fonts not handled by Open32, set to WarpSans 1053 lstrcpyA(cmetric->lfCaptionFont.lfFaceName,"WarpSans"); 1054 cmetric->lfCaptionFont.lfHeight = 9; 1055 1056 lstrcpyA(cmetric->lfMenuFont.lfFaceName,"WarpSans"); 1057 cmetric->lfMenuFont.lfHeight = 9; 1058 1342 1059 lstrcpyA(cmetric->lfStatusFont.lfFaceName,"WarpSans"); 1343 1060 cmetric->lfStatusFont.lfHeight = 9; 1344 1061 1345 O32_SystemParametersInfo(SPI_GETICONTITLELOGFONT, 0, (LPVOID)&(cmetric->lfMessageFont),0); 1062 lstrcpyA(cmetric->lfMessageFont.lfFaceName,"WarpSans"); 1063 cmetric->lfMessageFont.lfHeight = 9; 1064 1346 1065 cmetric->iBorderWidth = GetSystemMetrics(SM_CXBORDER); 1347 1066 cmetric->iScrollWidth = GetSystemMetrics(SM_CXHSCROLL); … … 1481 1200 return(rc); 1482 1201 } 1483 //****************************************************************************** 1484 //****************************************************************************** 1485 LONG WIN32API TabbedTextOutA( HDC arg1, int arg2, int arg3, LPCSTR arg4, int arg5, int arg6, int * arg7, int arg8) 1486 { 1487 #ifdef DEBUG 1488 WriteLog("USER32: TabbedTextOutA\n"); 1489 #endif 1490 return O32_TabbedTextOut(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); 1491 } 1492 //****************************************************************************** 1493 //****************************************************************************** 1494 LONG WIN32API TabbedTextOutW( HDC arg1, int arg2, int arg3, LPCWSTR arg4, int arg5, int arg6, int * arg7, int arg8) 1495 { 1496 char *astring = UnicodeToAsciiString((LPWSTR)arg4); 1497 LONG rc; 1498 1499 #ifdef DEBUG 1500 WriteLog("USER32: TabbedTextOutW\n"); 1501 #endif 1502 rc = O32_TabbedTextOut(arg1, arg2, arg3, astring, arg5, arg6, arg7, arg8); 1503 FreeAsciiString(astring); 1504 return rc; 1505 } 1506 //****************************************************************************** 1507 //****************************************************************************** 1508 BOOL WIN32API ValidateRect( HWND arg1, const RECT * arg2) 1509 { 1510 #ifdef DEBUG 1511 WriteLog("USER32: ValidateRect\n"); 1512 #endif 1513 return O32_ValidateRect(arg1, arg2); 1514 } 1515 //****************************************************************************** 1516 //****************************************************************************** 1517 BOOL WIN32API ValidateRgn( HWND arg1, HRGN arg2) 1518 { 1519 #ifdef DEBUG 1520 WriteLog("USER32: ValidateRgn\n"); 1521 #endif 1522 return O32_ValidateRgn(arg1, arg2); 1523 } 1524 //****************************************************************************** 1525 //****************************************************************************** 1526 WORD WIN32API VkKeyScanW( WCHAR arg1) 1527 { 1528 #ifdef DEBUG 1529 WriteLog("USER32: VkKeyScanW\n"); 1530 #endif 1531 // NOTE: This will not work as is (needs UNICODE support) 1532 return O32_VkKeyScan((char)arg1); 1202 1203 /* Timer Functions */ 1204 1205 #if 0 1206 BOOL WIN32API KillTimer(HWND hWnd, UINT uIDEvent) 1207 { 1208 #ifdef DEBUG 1209 WriteLog("USER32: KillTimer\n"); 1210 #endif 1211 hWnd = Win32Window::Win32ToOS2Handle(hWnd); 1212 //WinStopTimer 1213 //CB: replace 1214 return O32_KillTimer(hWnd,uIDEvent); 1215 } 1216 //****************************************************************************** 1217 //****************************************************************************** 1218 UINT WIN32API SetTimer( HWND hwnd, UINT idTimer, UINT uTimeout, TIMERPROC tmprc) 1219 { 1220 #ifdef DEBUG 1221 WriteLog("USER32: SetTimer INCORRECT CALLING CONVENTION FOR HANDLER!!!!!\n"); 1222 #endif 1223 hwnd = Win32Window::Win32ToOS2Handle(hwnd); 1224 //SvL: Write callback handler class for this one 1225 //CB: replace 1226 return O32_SetTimer(hwnd,idTimer,uTimeout,(TIMERPROC_O32)tmprc); 1227 } 1228 #endif 1229 1230 /* Process and Thread Functions */ 1231 1232 //****************************************************************************** 1233 //DWORD idAttach; /* thread to attach */ 1234 //DWORD idAttachTo; /* thread to attach to */ 1235 //BOOL fAttach; /* attach or detach */ 1236 //****************************************************************************** 1237 BOOL WIN32API AttachThreadInput(DWORD idAttach, DWORD idAttachTo, BOOL fAttach) 1238 { 1239 #ifdef DEBUG 1240 WriteLog("USER32: AttachThreadInput, not implemented\n"); 1241 #endif 1242 return(TRUE); 1243 } 1244 //****************************************************************************** 1245 //TODO:How can we emulate this one in OS/2??? 1246 //****************************************************************************** 1247 DWORD WIN32API WaitForInputIdle(HANDLE hProcess, DWORD dwTimeOut) 1248 { 1249 #ifdef DEBUG 1250 WriteLog("USER32: WaitForInputIdle (Not Implemented) %d\n", dwTimeOut); 1251 #endif 1252 1253 if(dwTimeOut == INFINITE) return(0); 1254 1255 // DosSleep(dwTimeOut/16); 1256 return(0); 1257 } 1258 1259 /* Help Functions */ 1260 1261 BOOL WIN32API WinHelpA( HWND hwnd, LPCSTR lpszHelp, UINT uCommand, DWORD dwData) 1262 { 1263 #ifdef DEBUG 1264 WriteLog("USER32: WinHelp not implemented %s\n", lpszHelp); 1265 #endif 1266 // hwnd = Win32Window::Win32ToOS2Handle(hwnd); 1267 // return O32_WinHelp(arg1, arg2, arg3, arg4); 1268 1269 return(TRUE); 1533 1270 } 1534 1271 //****************************************************************************** … … 1546 1283 return rc; 1547 1284 } 1548 //****************************************************************************** 1549 //TODO: Not complete 1550 //****************************************************************************** 1551 BOOL WIN32API GrayStringA(HDC hdc, HBRUSH hBrush, GRAYSTRINGPROC lpOutputFunc, 1552 LPARAM lpData, int nCount, int X, int Y, int nWidth, 1553 int nHeight) 1554 { 1555 BOOL rc; 1556 COLORREF curclr; 1557 1558 #ifdef DEBUG 1559 WriteLog("USER32: GrayStringA, not completely implemented\n"); 1560 #endif 1561 if(lpOutputFunc == NULL && lpData == NULL) { 1562 #ifdef DEBUG 1563 WriteLog("USER32: lpOutputFunc == NULL && lpData == NULL\n"); 1564 #endif 1565 return(FALSE); 1566 } 1567 if(lpOutputFunc) { 1568 return(lpOutputFunc(hdc, lpData, nCount)); 1569 } 1570 curclr = SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT)); 1571 rc = TextOutA(hdc, X, Y, (char *)lpData, nCount); 1572 SetTextColor(hdc, curclr); 1573 1574 return(rc); 1575 } 1576 //****************************************************************************** 1577 //****************************************************************************** 1578 BOOL WIN32API GrayStringW(HDC hdc, HBRUSH hBrush, GRAYSTRINGPROC lpOutputFunc, 1579 LPARAM lpData, int nCount, int X, int Y, int nWidth, 1580 int nHeight) 1581 { 1582 BOOL rc; 1583 char *astring; 1584 COLORREF curclr; 1585 1586 #ifdef DEBUG 1587 WriteLog("USER32: GrayStringW, not completely implemented\n"); 1588 #endif 1589 1590 if(lpOutputFunc == NULL && lpData == NULL) { 1591 #ifdef DEBUG 1592 WriteLog("USER32: lpOutputFunc == NULL && lpData == NULL\n"); 1593 #endif 1594 return(FALSE); 1595 } 1596 if(nCount == 0) 1597 nCount = UniStrlen((UniChar*)lpData); 1598 1599 if(lpOutputFunc) { 1600 return(lpOutputFunc(hdc, lpData, nCount)); 1601 } 1602 astring = UnicodeToAsciiString((LPWSTR)lpData); 1603 1604 curclr = SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT)); 1605 rc = TextOutA(hdc, X, Y, astring, nCount); 1606 SetTextColor(hdc, curclr); 1607 1608 FreeAsciiString(astring); 1609 return(rc); 1610 } 1611 //****************************************************************************** 1612 //TODO: 1613 //****************************************************************************** 1614 HANDLE WIN32API CopyImage(HANDLE hImage, UINT uType, int cxDesired, int cyDesired, UINT fuFlags) 1615 { 1616 #ifdef DEBUG 1617 WriteLog("USER32: CopyImage, not implemented\n"); 1618 #endif 1619 switch(uType) { 1620 case IMAGE_BITMAP: 1621 case IMAGE_CURSOR: 1622 case IMAGE_ICON: 1623 default: 1624 #ifdef DEBUG 1625 WriteLog("USER32: CopyImage, unknown type\n"); 1626 #endif 1627 return(NULL); 1628 } 1629 return(NULL); 1630 } 1631 //****************************************************************************** 1632 //****************************************************************************** 1633 BOOL WIN32API GetKeyboardState(PBYTE lpKeyState) 1634 { 1635 #ifdef DEBUG 1636 WriteLog("USER32: GetKeyboardState, not properly implemented\n"); 1637 #endif 1638 memset(lpKeyState, 0, 256); 1285 1286 /* Keyboard and Input Functions */ 1287 1288 BOOL WIN32API ActivateKeyboardLayout(HKL hkl, UINT fuFlags) 1289 { 1290 #ifdef DEBUG 1291 WriteLog("USER32: ActivateKeyboardLayout, not implemented\n"); 1292 #endif 1639 1293 return(TRUE); 1640 1294 } 1641 1295 //****************************************************************************** 1642 //****************************************************************************** 1643 BOOL WIN32API SetKeyboardState(PBYTE lpKeyState) 1644 { 1645 #ifdef DEBUG 1646 WriteLog("USER32: SetKeyboardState, not implemented\n"); 1647 #endif 1648 return(TRUE); 1649 } 1650 //****************************************************************************** 1651 //2nd parameter not used according to SDK (yet?) 1652 //****************************************************************************** 1653 VOID WIN32API SetLastErrorEx(DWORD dwErrCode, DWORD dwType) 1654 { 1655 #ifdef DEBUG 1656 WriteLog("USER32: SetLastErrorEx\n"); 1657 #endif 1658 SetLastError(dwErrCode); 1659 } 1660 //****************************************************************************** 1661 //****************************************************************************** 1662 BOOL WIN32API ActivateKeyboardLayout(HKL hkl, UINT fuFlags) 1663 { 1664 #ifdef DEBUG 1665 WriteLog("USER32: ActivateKeyboardLayout, not implemented\n"); 1666 #endif 1667 return(TRUE); 1668 } 1669 //****************************************************************************** 1670 //****************************************************************************** 1671 int WIN32API GetKeyboardLayoutList(int nBuff, HKL *lpList) 1672 { 1673 #ifdef DEBUG 1674 WriteLog("USER32: GetKeyboardLayoutList, not implemented\n"); 1675 #endif 1676 return(0); 1677 } 1678 //****************************************************************************** 1679 //****************************************************************************** 1680 HKL WIN32API GetKeyboardLayout(DWORD dwLayout) 1681 { 1682 #ifdef DEBUG 1683 WriteLog("USER32: GetKeyboardLayout, not implemented\n"); 1684 #endif 1685 return(0); 1686 } 1687 //****************************************************************************** 1688 //****************************************************************************** 1689 int WIN32API LookupIconIdFromDirectory(PBYTE presbits, BOOL fIcon) 1690 { 1691 #ifdef DEBUG 1692 WriteLog("USER32: LookupIconIdFromDirectory, not implemented\n"); 1693 #endif 1694 return(0); 1695 } 1696 //****************************************************************************** 1697 //****************************************************************************** 1698 int WIN32API LookupIconIdFromDirectoryEx(PBYTE presbits, BOOL fIcon, 1699 int cxDesired, int cyDesired, 1700 UINT Flags) 1701 { 1702 #ifdef DEBUG 1703 WriteLog("USER32: LookupIconIdFromDirectoryEx, not implemented\n"); 1704 #endif 1705 return(0); 1706 } 1707 //****************************************************************************** 1708 //DWORD idAttach; /* thread to attach */ 1709 //DWORD idAttachTo; /* thread to attach to */ 1710 //BOOL fAttach; /* attach or detach */ 1711 //****************************************************************************** 1712 BOOL WIN32API AttachThreadInput(DWORD idAttach, DWORD idAttachTo, BOOL fAttach) 1713 { 1714 #ifdef DEBUG 1715 WriteLog("USER32: AttachThreadInput, not implemented\n"); 1716 #endif 1717 return(TRUE); 1718 } 1719 //****************************************************************************** 1720 //****************************************************************************** 1721 BOOL WIN32API RegisterHotKey(HWND hwnd, int idHotKey, UINT fuModifiers, UINT uVirtKey) 1722 { 1723 #ifdef DEBUG 1724 WriteLog("USER32: RegisterHotKey, not implemented\n"); 1725 #endif 1726 return(TRUE); 1727 } 1728 //****************************************************************************** 1729 //****************************************************************************** 1730 BOOL WIN32API UnregisterHotKey(HWND hwnd, int idHotKey) 1731 { 1732 #ifdef DEBUG 1733 WriteLog("USER32: UnregisterHotKey, not implemented\n"); 1734 #endif 1735 return(TRUE); 1736 } 1737 //****************************************************************************** 1738 //****************************************************************************** 1739 BOOL WIN32API SetWindowContextHelpId(HWND hwnd, DWORD dwContextHelpId) 1740 { 1741 #ifdef DEBUG 1742 WriteLog("USER32: SetWindowContextHelpId, not implemented\n"); 1743 #endif 1744 return(TRUE); 1745 } 1746 //****************************************************************************** 1747 //****************************************************************************** 1748 DWORD WIN32API GetWindowContextHelpId(HWND hwnd) 1749 { 1750 #ifdef DEBUG 1751 WriteLog("USER32: GetWindowContextHelpId, not implemented\n"); 1752 #endif 1753 return(0); 1754 } 1755 //****************************************************************************** 1756 //****************************************************************************** 1757 BOOL WIN32API GetMonitorInfoA(HMONITOR,LPMONITORINFO) 1758 { 1759 #ifdef DEBUG 1760 WriteLog("USER32: GetMonitorInfoA not supported!!\n"); 1761 #endif 1762 return(FALSE); 1763 } 1764 //****************************************************************************** 1765 //****************************************************************************** 1766 BOOL WIN32API GetMonitorInfoW(HMONITOR,LPMONITORINFO) 1767 { 1768 #ifdef DEBUG 1769 WriteLog("USER32: GetMonitorInfoW not supported!!\n"); 1770 #endif 1771 return(FALSE); 1772 } 1773 //****************************************************************************** 1774 //****************************************************************************** 1775 HMONITOR WIN32API MonitorFromWindow(HWND hwnd, DWORD dwFlags) 1776 { 1777 #ifdef DEBUG 1778 WriteLog("USER32: MonitorFromWindow not correctly supported??\n"); 1779 #endif 1780 return(0); 1781 } 1782 //****************************************************************************** 1783 //****************************************************************************** 1784 HMONITOR WIN32API MonitorFromRect(LPRECT rect, DWORD dwFlags) 1785 { 1786 #ifdef DEBUG 1787 WriteLog("USER32: MonitorFromRect not correctly supported??\n"); 1788 #endif 1789 return(0); 1790 } 1791 //****************************************************************************** 1792 //****************************************************************************** 1793 HMONITOR WIN32API MonitorFromPoint(POINT point, DWORD dwflags) 1794 { 1795 #ifdef DEBUG 1796 WriteLog("USER32: MonitorFromPoint not correctly supported??\n"); 1797 #endif 1798 return(0); 1799 } 1800 //****************************************************************************** 1801 //****************************************************************************** 1802 BOOL WIN32API EnumDisplayMonitors(HDC,LPRECT,MONITORENUMPROC,LPARAM) 1803 { 1804 #ifdef DEBUG 1805 WriteLog("USER32: EnumDisplayMonitors not supported??\n"); 1806 #endif 1807 return(FALSE); 1808 } 1809 //****************************************************************************** 1810 //****************************************************************************** 1811 BOOL WIN32API EnumDisplaySettingsA(LPCSTR lpszDeviceName, DWORD iModeNum, 1812 LPDEVMODEA lpDevMode) 1813 { 1814 #ifdef DEBUG 1815 WriteLog("USER32: EnumDisplaySettingsA FAKED\n"); 1816 #endif 1817 switch(iModeNum) { 1818 case 0: 1819 lpDevMode->dmBitsPerPel = 16; 1820 lpDevMode->dmPelsWidth = 768; 1821 lpDevMode->dmPelsHeight = 1024; 1822 lpDevMode->dmDisplayFlags = 0; 1823 lpDevMode->dmDisplayFrequency = 70; 1824 break; 1825 case 1: 1826 lpDevMode->dmBitsPerPel = 16; 1827 lpDevMode->dmPelsWidth = 640; 1828 lpDevMode->dmPelsHeight = 480; 1829 lpDevMode->dmDisplayFlags = 0; 1830 lpDevMode->dmDisplayFrequency = 70; 1831 break; 1832 default: 1833 return(FALSE); 1834 } 1835 return(TRUE); 1836 } 1837 //****************************************************************************** 1838 //****************************************************************************** 1839 LONG WIN32API ChangeDisplaySettingsA(LPDEVMODEA lpDevMode, DWORD dwFlags) 1840 { 1841 #ifdef DEBUG 1842 if(lpDevMode) { 1843 WriteLog("USER32: ChangeDisplaySettingsA FAKED %X\n", dwFlags); 1844 WriteLog("USER32: ChangeDisplaySettingsA lpDevMode->dmBitsPerPel %d\n", lpDevMode->dmBitsPerPel); 1845 WriteLog("USER32: ChangeDisplaySettingsA lpDevMode->dmPelsWidth %d\n", lpDevMode->dmPelsWidth); 1846 WriteLog("USER32: ChangeDisplaySettingsA lpDevMode->dmPelsHeight %d\n", lpDevMode->dmPelsHeight); 1847 } 1848 #endif 1849 return(DISP_CHANGE_SUCCESSFUL); 1850 } 1851 //****************************************************************************** 1852 //****************************************************************************** 1853 1854 1855 /***************************************************************************** 1856 * Name : BOOL WIN32API AnyPopup 1857 * Purpose : The AnyPopup function indicates whether an owned, visible, 1858 * top-level pop-up, or overlapped window exists on the screen. The 1859 * function searches the entire Windows screen, not just the calling 1860 * application's client area. 1861 * Parameters: VOID 1862 * Variables : 1863 * Result : If a pop-up window exists, the return value is TRUE even if the 1864 * pop-up window is completely covered by other windows. Otherwise, 1865 * it is FALSE. 1866 * Remark : AnyPopup is a Windows version 1.x function and is retained for 1867 * compatibility purposes. It is generally not useful. 1868 * Status : UNTESTED STUB 1869 * 1870 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 1871 *****************************************************************************/ 1872 1873 BOOL WIN32API AnyPopup(VOID) 1874 { 1875 dprintf(("USER32:AnyPopup() not implemented.\n")); 1876 1877 return (FALSE); 1878 } 1879 1880 1881 1882 /***************************************************************************** 1883 * Name : LONG WIN32API ChangeDisplaySettingsW 1884 * Purpose : The ChangeDisplaySettings function changes the display settings 1885 * to the specified graphics mode. 1886 * Parameters: LPDEVMODEW lpDevModeW 1887 * DWORD dwFlags 1888 * Variables : 1889 * Result : DISP_CHANGE_SUCCESSFUL The settings change was successful. 1890 * DISP_CHANGE_RESTART The computer must be restarted in order for the graphics mode to work. 1891 * DISP_CHANGE_BADFLAGS An invalid set of flags was passed in. 1892 * DISP_CHANGE_FAILED The display driver failed the specified graphics mode. 1893 * DISP_CHANGE_BADMODE The graphics mode is not supported. 1894 * DISP_CHANGE_NOTUPDATED Unable to write settings to the registry. 1895 * Remark : 1896 * Status : UNTESTED STUB 1897 * 1898 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 1899 *****************************************************************************/ 1900 1901 LONG WIN32API ChangeDisplaySettingsW(LPDEVMODEW lpDevMode, 1902 DWORD dwFlags) 1903 { 1904 dprintf(("USER32:ChangeDisplaySettingsW(%08xh,%08x) not implemented.\n", 1905 lpDevMode, 1906 dwFlags)); 1907 1908 return (ChangeDisplaySettingsA((LPDEVMODEA)lpDevMode, 1909 dwFlags)); 1910 } 1911 1912 /***************************************************************************** 1913 * Name : BOOL WIN32API CloseDesktop 1914 * Purpose : The CloseDesktop function closes an open handle of a desktop 1915 * object. A desktop is a secure object contained within a window 1916 * station object. A desktop has a logical display surface and 1917 * contains windows, menus and hooks. 1918 * Parameters: HDESK hDesktop 1919 * Variables : 1920 * Result : If the function succeeds, the return value is TRUE. 1921 * If the functions fails, the return value is FALSE. To get 1922 * extended error information, call GetLastError. 1923 * Remark : 1924 * Status : UNTESTED STUB 1925 * 1926 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 1927 *****************************************************************************/ 1928 1929 BOOL WIN32API CloseDesktop(HDESK hDesktop) 1930 { 1931 dprintf(("USER32:CloseDesktop(%08x) not implemented.\n", 1932 hDesktop)); 1933 1934 return (FALSE); 1935 } 1936 1937 1938 /***************************************************************************** 1939 * Name : BOOL WIN32API CloseWindowStation 1940 * Purpose : The CloseWindowStation function closes an open window station handle. 1941 * Parameters: HWINSTA hWinSta 1942 * Variables : 1943 * Result : 1944 * Remark : If the function succeeds, the return value is TRUE. 1945 * If the functions fails, the return value is FALSE. To get 1946 * extended error information, call GetLastError. 1947 * Status : UNTESTED STUB 1948 * 1949 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 1950 *****************************************************************************/ 1951 1952 BOOL WIN32API CloseWindowStation(HWINSTA hWinSta) 1953 { 1954 dprintf(("USER32:CloseWindowStation(%08x) not implemented.\n", 1955 hWinSta)); 1956 1957 return (FALSE); 1958 } 1959 1960 1961 /***************************************************************************** 1962 * Name : HDESK WIN32API CreateDesktopA 1963 * Purpose : The CreateDesktop function creates a new desktop on the window 1964 * station associated with the calling process. 1965 * Parameters: LPCTSTR lpszDesktop name of the new desktop 1966 * LPCTSTR lpszDevice name of display device to assign to the desktop 1967 * LPDEVMODE pDevMode reserved; must be NULL 1968 * DWORD dwFlags flags to control interaction with other applications 1969 * DWORD dwDesiredAccess specifies access of returned handle 1970 * LPSECURITY_ATTRIBUTES lpsa specifies security attributes of the desktop 1971 * Variables : 1972 * Result : If the function succeeds, the return value is a handle of the 1973 * newly created desktop. 1974 * If the function fails, the return value is NULL. To get extended 1975 * error information, call GetLastError. 1976 * Remark : 1977 * Status : UNTESTED STUB 1978 * 1979 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 1980 *****************************************************************************/ 1981 1982 HDESK WIN32API CreateDesktopA(LPCTSTR lpszDesktop, 1983 LPCTSTR lpszDevice, 1984 LPDEVMODEA pDevMode, 1985 DWORD dwFlags, 1986 DWORD dwDesiredAccess, 1987 LPSECURITY_ATTRIBUTES lpsa) 1988 { 1989 dprintf(("USER32:CreateDesktopA(%s,%s,%08xh,%08xh,%08xh,%08x) not implemented.\n", 1990 lpszDesktop, 1991 lpszDevice, 1992 pDevMode, 1993 dwFlags, 1994 dwDesiredAccess, 1995 lpsa)); 1996 1997 return (NULL); 1998 } 1999 2000 2001 /***************************************************************************** 2002 * Name : HDESK WIN32API CreateDesktopW 2003 * Purpose : The CreateDesktop function creates a new desktop on the window 2004 * station associated with the calling process. 2005 * Parameters: LPCTSTR lpszDesktop name of the new desktop 2006 * LPCTSTR lpszDevice name of display device to assign to the desktop 2007 * LPDEVMODE pDevMode reserved; must be NULL 2008 * DWORD dwFlags flags to control interaction with other applications 2009 * DWORD dwDesiredAccess specifies access of returned handle 2010 * LPSECURITY_ATTRIBUTES lpsa specifies security attributes of the desktop 2011 * Variables : 2012 * Result : If the function succeeds, the return value is a handle of the 2013 * newly created desktop. 2014 * If the function fails, the return value is NULL. To get extended 2015 * error information, call GetLastError. 2016 * Remark : 2017 * Status : UNTESTED STUB 2018 * 2019 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2020 *****************************************************************************/ 2021 2022 HDESK WIN32API CreateDesktopW(LPCTSTR lpszDesktop, 2023 LPCTSTR lpszDevice, 2024 LPDEVMODEW pDevMode, 2025 DWORD dwFlags, 2026 DWORD dwDesiredAccess, 2027 LPSECURITY_ATTRIBUTES lpsa) 2028 { 2029 dprintf(("USER32:CreateDesktopW(%s,%s,%08xh,%08xh,%08xh,%08x) not implemented.\n", 2030 lpszDesktop, 2031 lpszDevice, 2032 pDevMode, 2033 dwFlags, 2034 dwDesiredAccess, 2035 lpsa)); 2036 2037 return (NULL); 2038 } 2039 2040 2041 /***************************************************************************** 2042 * Name : HWINSTA WIN32API CreateWindowStationA 2043 * Purpose : The CreateWindowStation function creates a window station object. 2044 * It returns a handle that can be used to access the window station. 2045 * A window station is a secure object that contains a set of global 2046 * atoms, a clipboard, and a set of desktop objects. 2047 * Parameters: LPTSTR lpwinsta name of the new window station 2048 * DWORD dwReserved reserved; must be NULL 2049 * DWORD dwDesiredAccess specifies access of returned handle 2050 * LPSECURITY_ATTRIBUTES lpsa specifies security attributes of the window station 2051 * Variables : 2052 * Result : If the function succeeds, the return value is the handle to the 2053 * newly created window station. 2054 * If the function fails, the return value is NULL. To get extended 2055 * error information, call GetLastError. 2056 * Remark : 2057 * Status : UNTESTED STUB 2058 * 2059 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2060 *****************************************************************************/ 2061 2062 HWINSTA WIN32API CreateWindowStationA(LPTSTR lpWinSta, 2063 DWORD dwReserved, 2064 DWORD dwDesiredAccess, 2065 LPSECURITY_ATTRIBUTES lpsa) 2066 { 2067 dprintf(("USER32:CreateWindowStationA(%s,%08xh,%08xh,%08x) not implemented.\n", 2068 lpWinSta, 2069 dwReserved, 2070 dwDesiredAccess, 2071 lpsa)); 2072 2073 return (NULL); 2074 } 2075 2076 2077 /***************************************************************************** 2078 * Name : HWINSTA WIN32API CreateWindowStationW 2079 * Purpose : The CreateWindowStation function creates a window station object. 2080 * It returns a handle that can be used to access the window station. 2081 * A window station is a secure object that contains a set of global 2082 * atoms, a clipboard, and a set of desktop objects. 2083 * Parameters: LPTSTR lpwinsta name of the new window station 2084 * DWORD dwReserved reserved; must be NULL 2085 * DWORD dwDesiredAccess specifies access of returned handle 2086 * LPSECURITY_ATTRIBUTES lpsa specifies security attributes of the window station 2087 * Variables : 2088 * Result : If the function succeeds, the return value is the handle to the 2089 * newly created window station. 2090 * If the function fails, the return value is NULL. To get extended 2091 * error information, call GetLastError. 2092 * Remark : 2093 * Status : UNTESTED STUB 2094 * 2095 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2096 *****************************************************************************/ 2097 2098 HWINSTA WIN32API CreateWindowStationW(LPWSTR lpWinSta, 2099 DWORD dwReserved, 2100 DWORD dwDesiredAccess, 2101 LPSECURITY_ATTRIBUTES lpsa) 2102 { 2103 dprintf(("USER32:CreateWindowStationW(%s,%08xh,%08xh,%08x) not implemented.\n", 2104 lpWinSta, 2105 dwReserved, 2106 dwDesiredAccess, 2107 lpsa)); 2108 2109 return (NULL); 2110 } 2111 2112 /***************************************************************************** 2113 * Name : BOOL WIN32API DragDetect 2114 * Purpose : The DragDetect function captures the mouse and tracks its movement 2115 * Parameters: HWND hwnd 2116 * POINT pt 2117 * Variables : 2118 * Result : If the user moved the mouse outside of the drag rectangle while 2119 * holding the left button down, the return value is TRUE. 2120 * If the user did not move the mouse outside of the drag rectangle 2121 * while holding the left button down, the return value is FALSE. 2122 * Remark : 2123 * Status : UNTESTED STUB 2124 * 2125 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2126 *****************************************************************************/ 2127 2128 BOOL WIN32API DragDetect(HWND hwnd, 2129 POINT pt) 2130 { 2131 dprintf(("USER32:DragDetect(%08xh,...) not implemented.\n", 2132 hwnd)); 2133 2134 return (FALSE); 2135 } 2136 2137 2138 2139 /***************************************************************************** 2140 * Name : BOOL WIN32API EnumDesktopWindows 2141 * Purpose : The EnumDesktopWindows function enumerates all windows in a 2142 * desktop by passing the handle of each window, in turn, to an 2143 * application-defined callback function. 2144 * Parameters: HDESK hDesktop handle of desktop to enumerate 2145 * WNDENUMPROC lpfn points to application's callback function 2146 * LPARAM lParam 32-bit value to pass to the callback function 2147 * Variables : 2148 * Result : If the function succeeds, the return value is TRUE. 2149 * If the function fails, the return value is FALSE. To get 2150 * extended error information, call GetLastError. 2151 * Remark : 2152 * Status : UNTESTED STUB 2153 * 2154 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2155 *****************************************************************************/ 2156 2157 BOOL WIN32API EnumDesktopWindows(HDESK hDesktop, 2158 WNDENUMPROC lpfn, 2159 LPARAM lParam) 2160 { 2161 dprintf(("USER32:EnumDesktopWindows (%08xh,%08xh,%08x) not implemented.\n", 2162 hDesktop, 2163 lpfn, 2164 lParam)); 2165 2166 return (FALSE); 2167 } 2168 2169 2170 /***************************************************************************** 2171 * Name : BOOL WIN32API EnumDesktopsA 2172 * Purpose : The EnumDesktops function enumerates all desktops in the window 2173 * station assigned to the calling process. The function does so by 2174 * passing the name of each desktop, in turn, to an application- 2175 * defined callback function. 2176 * Parameters: HWINSTA hwinsta handle of window station to enumerate 2177 * DESKTOPENUMPROC lpEnumFunc points to application's callback function 2178 * LPARAM lParam 32-bit value to pass to the callback function 2179 * Variables : 2180 * Result : If the function succeeds, the return value is TRUE. 2181 * If the function fails, the return value is FALSE. To get extended 2182 * error information, call GetLastError. 2183 * Remark : 2184 * Status : UNTESTED STUB 2185 * 2186 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2187 *****************************************************************************/ 2188 2189 BOOL WIN32API EnumDesktopsA(HWINSTA hWinSta, 2190 DESKTOPENUMPROCA lpEnumFunc, 2191 LPARAM lParam) 2192 { 2193 dprintf(("USER32:EnumDesktopsA (%08xh,%08xh,%08x) not implemented.\n", 2194 hWinSta, 2195 lpEnumFunc, 2196 lParam)); 2197 2198 return (FALSE); 2199 } 2200 2201 2202 /***************************************************************************** 2203 * Name : BOOL WIN32API EnumDesktopsW 2204 * Purpose : The EnumDesktops function enumerates all desktops in the window 2205 * station assigned to the calling process. The function does so by 2206 * passing the name of each desktop, in turn, to an application- 2207 * defined callback function. 2208 * Parameters: HWINSTA hwinsta handle of window station to enumerate 2209 * DESKTOPENUMPROC lpEnumFunc points to application's callback function 2210 * LPARAM lParam 32-bit value to pass to the callback function 2211 * Variables : 2212 * Result : If the function succeeds, the return value is TRUE. 2213 * If the function fails, the return value is FALSE. To get extended 2214 * error information, call GetLastError. 2215 * Remark : 2216 * Status : UNTESTED STUB 2217 * 2218 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2219 *****************************************************************************/ 2220 2221 BOOL WIN32API EnumDesktopsW(HWINSTA hWinSta, 2222 DESKTOPENUMPROCW lpEnumFunc, 2223 LPARAM lParam) 2224 { 2225 dprintf(("USER32:EnumDesktopsW (%08xh,%08xh,%08x) not implemented.\n", 2226 hWinSta, 2227 lpEnumFunc, 2228 lParam)); 2229 2230 return (FALSE); 2231 } 2232 2233 2234 2235 /***************************************************************************** 2236 * Name : BOOL WIN32API EnumDisplaySettingsW 2237 * Purpose : The EnumDisplaySettings function obtains information about one 2238 * of a display device's graphics modes. You can obtain information 2239 * for all of a display device's graphics modes by making a series 2240 * of calls to this function. 2241 * Parameters: LPCTSTR lpszDeviceName specifies the display device 2242 * DWORD iModeNum specifies the graphics mode 2243 * LPDEVMODE lpDevMode points to structure to receive settings 2244 * Variables : 2245 * Result : If the function succeeds, the return value is TRUE. 2246 * If the function fails, the return value is FALSE. 2247 * Remark : 2248 * Status : UNTESTED STUB 2249 * 2250 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2251 *****************************************************************************/ 2252 2253 BOOL WIN32API EnumDisplaySettingsW(LPCSTR lpszDeviceName, 2254 DWORD iModeNum, 2255 LPDEVMODEW lpDevMode) 2256 { 2257 dprintf(("USER32:EnumDisplaySettingsW (%s,%08xh,%08x) not implemented.\n", 2258 lpszDeviceName, 2259 iModeNum, 2260 lpDevMode)); 2261 2262 return (EnumDisplaySettingsA(lpszDeviceName, 2263 iModeNum, 2264 (LPDEVMODEA)lpDevMode)); 2265 } 2266 2267 2268 /***************************************************************************** 2269 * Name : BOOL WIN32API EnumWindowStationsA 2270 * Purpose : The EnumWindowStations function enumerates all windowstations 2271 * in the system by passing the name of each window station, in 2272 * turn, to an application-defined callback function. 2273 * Parameters: 2274 * Variables : WINSTAENUMPROC lpEnumFunc points to application's callback function 2275 * LPARAM lParam 32-bit value to pass to the callback function 2276 * Result : If the function succeeds, the return value is TRUE. 2277 * If the function fails the return value is FALSE. To get extended 2278 * error information, call GetLastError. 2279 * Remark : 2280 * Status : UNTESTED STUB 2281 * 2282 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2283 *****************************************************************************/ 2284 2285 BOOL WIN32API EnumWindowStationsA(WINSTAENUMPROCA lpEnumFunc, 2286 LPARAM lParam) 2287 { 2288 dprintf(("USER32:EnumWindowStationsA (%08xh,%08x) not implemented.\n", 2289 lpEnumFunc, 2290 lParam)); 2291 2292 return (FALSE); 2293 } 2294 2295 2296 /***************************************************************************** 2297 * Name : BOOL WIN32API EnumWindowStationsW 2298 * Purpose : The EnumWindowStations function enumerates all windowstations 2299 * in the system by passing the name of each window station, in 2300 * turn, to an application-defined callback function. 2301 * Parameters: 2302 * Variables : WINSTAENUMPROC lpEnumFunc points to application's callback function 2303 * LPARAM lParam 32-bit value to pass to the callback function 2304 * Result : If the function succeeds, the return value is TRUE. 2305 * If the function fails the return value is FALSE. To get extended 2306 * error information, call GetLastError. 2307 * Remark : 2308 * Status : UNTESTED STUB 2309 * 2310 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2311 *****************************************************************************/ 2312 2313 BOOL WIN32API EnumWindowStationsW(WINSTAENUMPROCW lpEnumFunc, 2314 LPARAM lParam) 2315 { 2316 dprintf(("USER32:EnumWindowStationsW (%08xh,%08x) not implemented.\n", 2317 lpEnumFunc, 2318 lParam)); 2319 2320 return (FALSE); 2321 } 2322 2323 2324 2325 /***************************************************************************** 2326 * Name : BOOL WIN32API GetInputState 2327 * Purpose : The GetInputState function determines whether there are 2328 * mouse-button or keyboard messages in the calling thread's message queue. 2329 * Parameters: 2330 * Variables : 2331 * Result : If the queue contains one or more new mouse-button or keyboard 2332 * messages, the return value is TRUE. 2333 * If the function fails, the return value is FALSE. 2334 * Remark : 2335 * Status : UNTESTED STUB 2336 * 2337 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2338 *****************************************************************************/ 2339 2340 BOOL WIN32API GetInputState(VOID) 2341 { 2342 dprintf(("USER32:GetInputState () not implemented.\n")); 2343 2344 return (FALSE); 2345 } 2346 2347 2348 /***************************************************************************** 2349 * Name : UINT WIN32API GetKBCodePage 2350 * Purpose : The GetKBCodePage function is provided for compatibility with 2351 * earlier versions of Windows. In the Win32 application programming 2352 * interface (API) it just calls the GetOEMCP function. 2353 * Parameters: 2354 * Variables : 2355 * Result : If the function succeeds, the return value is an OEM code-page 2356 * identifier, or it is the default identifier if the registry 2357 * value is not readable. For a list of OEM code-page identifiers, 2358 * see GetOEMCP. 2359 * Remark : 2360 * Status : UNTESTED 2361 * 2362 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2363 *****************************************************************************/ 2364 2365 UINT WIN32API GetKBCodePage(VOID) 2366 { 2367 return (GetOEMCP()); 2368 } 2369 2370 1296 //SvL: 24-6-'97 - Added 1297 //TODO: Not implemented 1298 //****************************************************************************** 1299 WORD WIN32API GetAsyncKeyState(INT nVirtKey) 1300 { 1301 #ifdef DEBUG 1302 //// WriteLog("USER32: GetAsyncKeyState Not implemented\n"); 1303 #endif 1304 return 0; 1305 } 2371 1306 /***************************************************************************** 2372 1307 * Name : BOOL WIN32API GetKeyboardLayoutNameA … … 2383 1318 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2384 1319 *****************************************************************************/ 2385 2386 1320 // @@@PH Win32 BOOL's are casted to INTs 2387 1321 INT WIN32API GetKeyboardLayoutNameA(LPTSTR pwszKLID) … … 2392 1326 return(FALSE); 2393 1327 } 2394 2395 2396 1328 /***************************************************************************** 2397 1329 * Name : BOOL WIN32API GetKeyboardLayoutNameW … … 2408 1340 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2409 1341 *****************************************************************************/ 2410 2411 1342 // @@@PH Win32 BOOL's are casted to INTs 2412 1343 INT WIN32API GetKeyboardLayoutNameW(LPWSTR pwszKLID) … … 2417 1348 return(FALSE); 2418 1349 } 2419 2420 2421 2422 2423 /***************************************************************************** 2424 * Name : HWINSTA WIN32API GetProcessWindowStation 2425 * Purpose : The GetProcessWindowStation function returns a handle of the 2426 * window station associated with the calling process. 2427 * Parameters: 2428 * Variables : 2429 * Result : If the function succeeds, the return value is a handle of the 2430 * window station associated with the calling process. 2431 * If the function fails, the return value is NULL. This can occur 2432 * if the calling process is not an application written for Windows 2433 * NT. To get extended error information, call GetLastError. 2434 * Remark : 2435 * Status : UNTESTED STUB 2436 * 2437 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2438 *****************************************************************************/ 2439 2440 HWINSTA WIN32API GetProcessWindowStation(VOID) 2441 { 2442 dprintf(("USER32:GetProcessWindowStation () not implemented.\n")); 2443 2444 return (NULL); 2445 } 2446 2447 2448 2449 /***************************************************************************** 2450 * Name : HDESK WIN32API GetThreadDesktop 2451 * Purpose : The GetThreadDesktop function returns a handle to the desktop 2452 * associated with a specified thread. 2453 * Parameters: DWORD dwThreadId thread identifier 2454 * Variables : 2455 * Result : If the function succeeds, the return value is the handle of the 2456 * desktop associated with the specified thread. 2457 * Remark : 2458 * Status : UNTESTED STUB 2459 * 2460 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2461 *****************************************************************************/ 2462 2463 HDESK WIN32API GetThreadDesktop(DWORD dwThreadId) 2464 { 2465 dprintf(("USER32:GetThreadDesktop (%u) not implemented.\n", 2466 dwThreadId)); 2467 2468 return (NULL); 2469 } 2470 2471 2472 /***************************************************************************** 2473 * Name : BOOL WIN32API GetUserObjectInformationA 2474 * Purpose : The GetUserObjectInformation function returns information about 2475 * a window station or desktop object. 2476 * Parameters: HANDLE hObj handle of object to get information for 2477 * int nIndex type of information to get 2478 * PVOID pvInfo points to buffer that receives the information 2479 * DWORD nLength size, in bytes, of pvInfo buffer 2480 * LPDWORD lpnLengthNeeded receives required size, in bytes, of pvInfo buffer 2481 * Variables : 2482 * Result : If the function succeeds, the return value is TRUE. 2483 * If the function fails, the return value is FALSE. To get extended 2484 * error information, call GetLastError. 2485 * Remark : 2486 * Status : UNTESTED STUB 2487 * 2488 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2489 *****************************************************************************/ 2490 2491 BOOL WIN32API GetUserObjectInformationA(HANDLE hObj, 2492 int nIndex, 2493 PVOID pvInfo, 2494 DWORD nLength, 2495 LPDWORD lpnLengthNeeded) 2496 { 2497 dprintf(("USER32:GetUserObjectInformationA (%08xh,%08xh,%08xh,%u,%08x) not implemented.\n", 2498 hObj, 2499 nIndex, 2500 pvInfo, 2501 nLength, 2502 lpnLengthNeeded)); 2503 2504 return (FALSE); 2505 } 2506 2507 2508 /***************************************************************************** 2509 * Name : BOOL WIN32API GetUserObjectInformationW 2510 * Purpose : The GetUserObjectInformation function returns information about 2511 * a window station or desktop object. 2512 * Parameters: HANDLE hObj handle of object to get information for 2513 * int nIndex type of information to get 2514 * PVOID pvInfo points to buffer that receives the information 2515 * DWORD nLength size, in bytes, of pvInfo buffer 2516 * LPDWORD lpnLengthNeeded receives required size, in bytes, of pvInfo buffer 2517 * Variables : 2518 * Result : If the function succeeds, the return value is TRUE. 2519 * If the function fails, the return value is FALSE. To get extended 2520 * error information, call GetLastError. 2521 * Remark : 2522 * Status : UNTESTED STUB 2523 * 2524 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2525 *****************************************************************************/ 2526 2527 BOOL WIN32API GetUserObjectInformationW(HANDLE hObj, 2528 int nIndex, 2529 PVOID pvInfo, 2530 DWORD nLength, 2531 LPDWORD lpnLengthNeeded) 2532 { 2533 dprintf(("USER32:GetUserObjectInformationW (%08xh,%08xh,%08xh,%u,%08x) not implemented.\n", 2534 hObj, 2535 nIndex, 2536 pvInfo, 2537 nLength, 2538 lpnLengthNeeded)); 2539 2540 return (FALSE); 2541 } 2542 2543 2544 /***************************************************************************** 2545 * Name : BOOL WIN32API GetUserObjectSecurity 2546 * Purpose : The GetUserObjectSecurity function retrieves security information 2547 * for the specified user object. 2548 * Parameters: HANDLE hObj handle of user object 2549 * SECURITY_INFORMATION * pSIRequested address of requested security information 2550 * LPSECURITY_DESCRIPTOR pSID address of security descriptor 2551 * DWORD nLength size of buffer for security descriptor 2552 * LPDWORD lpnLengthNeeded address of required size of buffer 2553 * Variables : 2554 * Result : If the function succeeds, the return value is TRUE. 2555 * If the function fails, the return value is FALSE. To get extended 2556 * error information, call GetLastError. 2557 * Remark : 2558 * Status : UNTESTED STUB 2559 * 2560 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2561 *****************************************************************************/ 2562 2563 BOOL WIN32API GetUserObjectSecurity(HANDLE hObj, 2564 SECURITY_INFORMATION * pSIRequested, 2565 LPSECURITY_DESCRIPTOR pSID, 2566 DWORD nLength, 2567 LPDWORD lpnLengthNeeded) 2568 { 2569 dprintf(("USER32:GetUserObjectSecurity (%08xh,%08xh,%08xh,%u,%08x) not implemented.\n", 2570 hObj, 2571 pSIRequested, 2572 pSID, 2573 nLength, 2574 lpnLengthNeeded)); 2575 2576 return (FALSE); 2577 } 2578 2579 2580 2581 /***************************************************************************** 2582 * Name : int WIN32API GetWindowRgn 2583 * Purpose : The GetWindowRgn function obtains a copy of the window region of a window. 2584 * Parameters: HWND hWnd handle to window whose window region is to be obtained 2585 * HRGN hRgn handle to region that receives a copy of the window region 2586 * Variables : 2587 * Result : NULLREGION, SIMPLEREGION, COMPLEXREGION, ERROR 2588 * Remark : 2589 * Status : UNTESTED STUB 2590 * 2591 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2592 *****************************************************************************/ 2593 2594 int WIN32API GetWindowRgn (HWND hWnd, 2595 HRGN hRgn) 2596 { 2597 dprintf(("USER32:GetWindowRgn (%08xh,%08x) not implemented.\n", 2598 hWnd, 2599 hRgn)); 2600 2601 return (NULLREGION); 2602 } 2603 2604 2605 1350 //****************************************************************************** 1351 //****************************************************************************** 1352 BOOL WIN32API GetKeyboardState(PBYTE lpKeyState) 1353 { 1354 #ifdef DEBUG 1355 WriteLog("USER32: GetKeyboardState, not properly implemented\n"); 1356 #endif 1357 memset(lpKeyState, 0, 256); 1358 return(TRUE); 1359 } 1360 //****************************************************************************** 1361 //****************************************************************************** 1362 int WIN32API GetKeyNameTextA( LPARAM lParam, LPSTR lpString, int nSize) 1363 { 1364 #ifdef DEBUG 1365 WriteLog("USER32: GetKeyNameTextA\n"); 1366 #endif 1367 return O32_GetKeyNameText(lParam,lpString,nSize); 1368 } 1369 //****************************************************************************** 1370 //****************************************************************************** 1371 int WIN32API GetKeyNameTextW( LPARAM lParam, LPWSTR lpString, int nSize) 1372 { 1373 #ifdef DEBUG 1374 WriteLog("USER32: GetKeyNameTextW DOES NOT WORK\n"); 1375 #endif 1376 // NOTE: This will not work as is (needs UNICODE support) 1377 return 0; 1378 // return O32_GetKeyNameText(arg1, arg2, arg3); 1379 } 1380 //****************************************************************************** 1381 //SvL: 24-6-'97 - Added 1382 //****************************************************************************** 1383 SHORT WIN32API GetKeyState( int nVirtKey) 1384 { 1385 #ifdef DEBUG 1386 WriteLog("USER32: GetKeyState %d\n", nVirtKey); 1387 #endif 1388 return O32_GetKeyState(nVirtKey); 1389 } 1390 /***************************************************************************** 1391 * Name : VOID WIN32API keybd_event 1392 * Purpose : The keybd_event function synthesizes a keystroke. The system 1393 * can use such a synthesized keystroke to generate a WM_KEYUP or 1394 * WM_KEYDOWN message. The keyboard driver's interrupt handler calls 1395 * the keybd_event function. 1396 * Parameters: BYTE bVk virtual-key code 1397 1398 * BYTE bScan hardware scan code 1399 * DWORD dwFlags flags specifying various function options 1400 * DWORD dwExtraInfo additional data associated with keystroke 1401 * Variables : 1402 * Result : 1403 * Remark : 1404 * Status : UNTESTED STUB 1405 * 1406 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 1407 *****************************************************************************/ 1408 VOID WIN32API keybd_event (BYTE bVk, 1409 BYTE bScan, 1410 DWORD dwFlags, 1411 DWORD dwExtraInfo) 1412 { 1413 dprintf(("USER32:keybd_event (%u,%u,%08xh,%08x) not implemented.\n", 1414 bVk, 1415 bScan, 1416 dwFlags, 1417 dwExtraInfo)); 1418 } 2606 1419 /***************************************************************************** 2607 1420 * Name : HLK WIN32API LoadKeyboardLayoutA … … 2621 1434 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2622 1435 *****************************************************************************/ 2623 2624 1436 HKL WIN32API LoadKeyboardLayoutA(LPCTSTR pwszKLID, 2625 1437 UINT Flags) … … 2631 1443 return (NULL); 2632 1444 } 2633 2634 2635 1445 /***************************************************************************** 2636 1446 * Name : HLK WIN32API LoadKeyboardLayoutW … … 2650 1460 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2651 1461 *****************************************************************************/ 2652 2653 1462 HKL WIN32API LoadKeyboardLayoutW(LPCWSTR pwszKLID, 2654 1463 UINT Flags) … … 2660 1469 return (NULL); 2661 1470 } 2662 2663 1471 //****************************************************************************** 1472 //****************************************************************************** 1473 UINT WIN32API MapVirtualKeyA( UINT uCode, UINT uMapType) 1474 { 1475 #ifdef DEBUG 1476 WriteLog("USER32: MapVirtualKeyA\n"); 1477 #endif 1478 return O32_MapVirtualKey(uCode,uMapType); 1479 } 1480 //****************************************************************************** 1481 //****************************************************************************** 1482 UINT WIN32API MapVirtualKeyW( UINT uCode, UINT uMapType) 1483 { 1484 #ifdef DEBUG 1485 WriteLog("USER32: MapVirtualKeyW\n"); 1486 #endif 1487 // NOTE: This will not work as is (needs UNICODE support) 1488 return O32_MapVirtualKey(uCode,uMapType); 1489 } 2664 1490 /***************************************************************************** 2665 1491 * Name : UINT WIN32API MapVirtualKeyExA … … 2679 1505 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2680 1506 *****************************************************************************/ 2681 2682 1507 UINT WIN32API MapVirtualKeyExA(UINT uCode, 2683 1508 UINT uMapType, … … 2691 1516 return (0); 2692 1517 } 2693 2694 2695 1518 /***************************************************************************** 2696 1519 * Name : UINT WIN32API MapVirtualKeyExW … … 2711 1534 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2712 1535 *****************************************************************************/ 2713 2714 1536 UINT WIN32API MapVirtualKeyExW(UINT uCode, 2715 1537 UINT uMapType, … … 2723 1545 return (0); 2724 1546 } 2725 2726 1547 /***************************************************************************** 2727 1548 * Name : DWORD WIN32API OemKeyScan … … 2738 1559 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2739 1560 *****************************************************************************/ 2740 2741 1561 DWORD WIN32API OemKeyScan(WORD wOemChar) 2742 1562 { … … 2746 1566 return (wOemChar); 2747 1567 } 2748 2749 2750 /***************************************************************************** 2751 * Name : HDESK WIN32API OpenDesktopA 2752 * Purpose : The OpenDesktop function returns a handle to an existing desktop. 2753 * A desktop is a secure object contained within a window station 2754 * object. A desktop has a logical display surface and contains 2755 * windows, menus and hooks. 2756 * Parameters: LPCTSTR lpszDesktopName name of the desktop to open 2757 * DWORD dwFlags flags to control interaction with other applications 2758 * BOOL fInherit specifies whether returned handle is inheritable 2759 * DWORD dwDesiredAccess specifies access of returned handle 2760 * Variables : 2761 * Result : If the function succeeds, the return value is the handle to the 2762 * opened desktop. 2763 * If the function fails, the return value is NULL. To get extended 2764 * error information, call GetLastError. 2765 * Remark : 2766 * Status : UNTESTED STUB 2767 * 2768 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2769 *****************************************************************************/ 2770 2771 HDESK WIN32API OpenDesktopA(LPCTSTR lpszDesktopName, 2772 DWORD dwFlags, 2773 BOOL fInherit, 2774 DWORD dwDesiredAccess) 2775 { 2776 dprintf(("USER32:OpenDesktopA (%s,%08xh,%08xh,%08x) not implemented.\n", 2777 lpszDesktopName, 2778 dwFlags, 2779 fInherit, 2780 dwDesiredAccess)); 2781 2782 return (NULL); 2783 } 2784 2785 2786 /***************************************************************************** 2787 * Name : HDESK WIN32API OpenDesktopW 2788 * Purpose : The OpenDesktop function returns a handle to an existing desktop. 2789 * A desktop is a secure object contained within a window station 2790 * object. A desktop has a logical display surface and contains 2791 * windows, menus and hooks. 2792 * Parameters: LPCTSTR lpszDesktopName name of the desktop to open 2793 * DWORD dwFlags flags to control interaction with other applications 2794 * BOOL fInherit specifies whether returned handle is inheritable 2795 * DWORD dwDesiredAccess specifies access of returned handle 2796 * Variables : 2797 * Result : If the function succeeds, the return value is the handle to the 2798 * opened desktop. 2799 * If the function fails, the return value is NULL. To get extended 2800 * error information, call GetLastError. 2801 * Remark : 2802 * Status : UNTESTED STUB 2803 * 2804 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2805 *****************************************************************************/ 2806 2807 HDESK WIN32API OpenDesktopW(LPCTSTR lpszDesktopName, 2808 DWORD dwFlags, 2809 BOOL fInherit, 2810 DWORD dwDesiredAccess) 2811 { 2812 dprintf(("USER32:OpenDesktopW (%s,%08xh,%08xh,%08x) not implemented.\n", 2813 lpszDesktopName, 2814 dwFlags, 2815 fInherit, 2816 dwDesiredAccess)); 2817 2818 return (NULL); 2819 } 2820 2821 2822 /***************************************************************************** 2823 * Name : HDESK WIN32API OpenInputDesktop 2824 * Purpose : The OpenInputDesktop function returns a handle to the desktop 2825 * that receives user input. The input desktop is a desktop on the 2826 * window station associated with the logged-on user. 2827 * Parameters: DWORD dwFlags flags to control interaction with other applications 2828 * BOOL fInherit specifies whether returned handle is inheritable 2829 * DWORD dwDesiredAccess specifies access of returned handle 2830 * Variables : 2831 * Result : If the function succeeds, the return value is a handle of the 2832 * desktop that receives user input. 2833 * If the function fails, the return value is NULL. To get extended 2834 * error information, call GetLastError. 2835 * Remark : 2836 * Status : UNTESTED STUB 2837 * 2838 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2839 *****************************************************************************/ 2840 2841 HDESK WIN32API OpenInputDesktop(DWORD dwFlags, 2842 BOOL fInherit, 2843 DWORD dwDesiredAccess) 2844 { 2845 dprintf(("USER32:OpenInputDesktop (%08xh,%08xh,%08x) not implemented.\n", 2846 dwFlags, 2847 fInherit, 2848 dwDesiredAccess)); 2849 2850 return (NULL); 2851 } 2852 2853 2854 /***************************************************************************** 2855 * Name : HWINSTA WIN32API OpenWindowStationA 2856 * Purpose : The OpenWindowStation function returns a handle to an existing 2857 * window station. 2858 * Parameters: LPCTSTR lpszWinStaName name of the window station to open 2859 * BOOL fInherit specifies whether returned handle is inheritable 2860 * DWORD dwDesiredAccess specifies access of returned handle 2861 * Variables : 2862 * Result : If the function succeeds, the return value is the handle to the 2863 * specified window station. 2864 * If the function fails, the return value is NULL. To get extended 2865 * error information, call GetLastError. 2866 * Remark : 2867 * Status : UNTESTED STUB 2868 * 2869 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2870 *****************************************************************************/ 2871 2872 HWINSTA WIN32API OpenWindowStationA(LPCTSTR lpszWinStaName, 2873 BOOL fInherit, 2874 DWORD dwDesiredAccess) 2875 { 2876 dprintf(("USER32:OpenWindowStatieonA (%s,%08xh,%08x) not implemented.\n", 2877 lpszWinStaName, 2878 fInherit, 2879 dwDesiredAccess)); 2880 2881 return (NULL); 2882 } 2883 2884 2885 /***************************************************************************** 2886 * Name : HWINSTA WIN32API OpenWindowStationW 2887 * Purpose : The OpenWindowStation function returns a handle to an existing 2888 * window station. 2889 * Parameters: LPCTSTR lpszWinStaName name of the window station to open 2890 * BOOL fInherit specifies whether returned handle is inheritable 2891 * DWORD dwDesiredAccess specifies access of returned handle 2892 * Variables : 2893 * Result : If the function succeeds, the return value is the handle to the 2894 * specified window station. 2895 * If the function fails, the return value is NULL. To get extended 2896 * error information, call GetLastError. 2897 2898 2899 * Remark : 2900 * Status : UNTESTED STUB 2901 * 2902 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2903 *****************************************************************************/ 2904 2905 HWINSTA WIN32API OpenWindowStationW(LPCTSTR lpszWinStaName, 2906 BOOL fInherit, 2907 DWORD dwDesiredAccess) 2908 { 2909 dprintf(("USER32:OpenWindowStatieonW (%s,%08xh,%08x) not implemented.\n", 2910 lpszWinStaName, 2911 fInherit, 2912 dwDesiredAccess)); 2913 2914 return (NULL); 2915 } 2916 2917 2918 /***************************************************************************** 2919 * Name : BOOL WIN32API PaintDesktop 2920 * Purpose : The PaintDesktop function fills the clipping region in the 2921 * specified device context with the desktop pattern or wallpaper. 2922 * The function is provided primarily for shell desktops. 2923 * Parameters: 2924 * Variables : 2925 * Result : If the function succeeds, the return value is TRUE. 2926 * If the function fails, the return value is FALSE. 2927 * Remark : 2928 * Status : UNTESTED STUB 2929 * 2930 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2931 *****************************************************************************/ 2932 2933 BOOL WIN32API PaintDesktop(HDC hdc) 2934 { 2935 dprintf(("USER32:PaintDesktop (%08x) not implemented.\n", 2936 hdc)); 2937 2938 return (FALSE); 2939 } 2940 2941 2942 2943 /***************************************************************************** 2944 * Name : VOID WIN32API SetDebugErrorLevel 2945 * Purpose : The SetDebugErrorLevel function sets the minimum error level at 2946 * which Windows will generate debugging events and pass them to a debugger. 2947 * Parameters: DWORD dwLevel debugging error level 2948 * Variables : 2949 * Result : 2950 * Remark : 2951 * Status : UNTESTED STUB 2952 * 2953 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2954 *****************************************************************************/ 2955 2956 VOID WIN32API SetDebugErrorLevel(DWORD dwLevel) 2957 { 2958 dprintf(("USER32:SetDebugErrorLevel (%08x) not implemented.\n", 2959 dwLevel)); 2960 } 2961 2962 2963 /***************************************************************************** 2964 * Name : BOOL WIN32API SetProcessWindowStation 2965 * Purpose : The SetProcessWindowStation function assigns a window station 2966 * to the calling process. This enables the process to access 2967 * objects in the window station such as desktops, the clipboard, 2968 * and global atoms. All subsequent operations on the window station 2969 * use the access rights granted to hWinSta. 2970 * Parameters: 2971 * Variables : 2972 * Result : If the function succeeds, the return value is TRUE. 2973 * If the function fails, the return value is FALSE. To get extended 2974 * error information, call GetLastError. 2975 * Remark : 2976 * Status : UNTESTED STUB 2977 * 2978 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2979 *****************************************************************************/ 2980 2981 BOOL WIN32API SetProcessWindowStation(HWINSTA hWinSta) 2982 { 2983 dprintf(("USER32:SetProcessWindowStation (%08x) not implemented.\n", 2984 hWinSta)); 2985 2986 return (FALSE); 2987 } 2988 2989 2990 /***************************************************************************** 2991 * Name : BOOL WIN32API SetThreadDesktop 2992 * Purpose : The SetThreadDesktop function assigns a desktop to the calling 2993 * thread. All subsequent operations on the desktop use the access 2994 * rights granted to hDesk. 2995 * Parameters: HDESK hDesk handle of the desktop to assign to this thread 2996 * Variables : 2997 * Result : If the function succeeds, the return value is TRUE. 2998 * If the function fails, the return value is FALSE. To get extended 2999 * error information, call GetLastError. 3000 * Remark : 3001 * Status : UNTESTED STUB 3002 * 3003 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3004 *****************************************************************************/ 3005 3006 BOOL WIN32API SetThreadDesktop(HDESK hDesktop) 3007 { 3008 dprintf(("USER32:SetThreadDesktop (%08x) not implemented.\n", 3009 hDesktop)); 3010 3011 return (FALSE); 3012 } 3013 3014 3015 /***************************************************************************** 3016 * Name : BOOL WIN32API SetUserObjectInformationA 3017 * Purpose : The SetUserObjectInformation function sets information about a 3018 * window station or desktop object. 3019 * Parameters: HANDLE hObject handle of the object for which to set information 3020 * int nIndex type of information to set 3021 * PVOID lpvInfo points to a buffer that contains the information 3022 * DWORD cbInfo size, in bytes, of lpvInfo buffer 3023 * Variables : 3024 * Result : If the function succeeds, the return value is TRUE. 3025 * If the function fails the return value is FALSE. To get extended 3026 * error information, call GetLastError. 3027 * Remark : 3028 * Status : UNTESTED STUB 3029 * 3030 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3031 *****************************************************************************/ 3032 3033 BOOL WIN32API SetUserObjectInformationA(HANDLE hObject, 3034 int nIndex, 3035 PVOID lpvInfo, 3036 DWORD cbInfo) 3037 { 3038 dprintf(("USER32:SetUserObjectInformationA (%08xh,%u,%08xh,%08x) not implemented.\n", 3039 hObject, 3040 nIndex, 3041 lpvInfo, 3042 cbInfo)); 3043 3044 return (FALSE); 3045 } 3046 3047 3048 /***************************************************************************** 3049 * Name : BOOL WIN32API SetUserObjectInformationW 3050 * Purpose : The SetUserObjectInformation function sets information about a 3051 * window station or desktop object. 3052 * Parameters: HANDLE hObject handle of the object for which to set information 3053 * int nIndex type of information to set 3054 * PVOID lpvInfo points to a buffer that contains the information 3055 * DWORD cbInfo size, in bytes, of lpvInfo buffer 3056 * Variables : 3057 * Result : If the function succeeds, the return value is TRUE. 3058 * If the function fails the return value is FALSE. To get extended 3059 * error information, call GetLastError. 3060 * Remark : 3061 * Status : UNTESTED STUB 3062 * 3063 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3064 *****************************************************************************/ 3065 3066 BOOL WIN32API SetUserObjectInformationW(HANDLE hObject, 3067 int nIndex, 3068 PVOID lpvInfo, 3069 DWORD cbInfo) 3070 { 3071 dprintf(("USER32:SetUserObjectInformationW (%08xh,%u,%08xh,%08x) not implemented.\n", 3072 hObject, 3073 nIndex, 3074 lpvInfo, 3075 cbInfo)); 3076 3077 return (FALSE); 3078 } 3079 3080 3081 /***************************************************************************** 3082 * Name : BOOL WIN32API SetUserObjectSecurity 3083 * Purpose : The SetUserObjectSecurity function sets the security of a user 3084 * object. This can be, for example, a window or a DDE conversation 3085 * Parameters: HANDLE hObject handle of user object 3086 * SECURITY_INFORMATION * psi address of security information 3087 * LPSECURITY_DESCRIPTOR psd address of security descriptor 3088 * Variables : 3089 * Result : If the function succeeds, the return value is TRUE. 3090 * If the function fails, the return value is FALSE. To get extended 3091 * error information, call GetLastError. 3092 * Remark : 3093 * Status : UNTESTED STUB 3094 * 3095 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3096 *****************************************************************************/ 3097 3098 BOOL WIN32API SetUserObjectSecurity(HANDLE hObject, 3099 SECURITY_INFORMATION * psi, 3100 LPSECURITY_DESCRIPTOR psd) 3101 { 3102 dprintf(("USER32:SetUserObjectSecuroty (%08xh,%08xh,%08x) not implemented.\n", 3103 hObject, 3104 psi, 3105 psd)); 3106 3107 return (FALSE); 3108 } 3109 3110 3111 /***************************************************************************** 3112 * Name : int WIN32API SetWindowRgn 3113 * Purpose : The SetWindowRgn function sets the window region of a window. The 3114 * window region determines the area within the window where the 3115 * operating system permits drawing. The operating system does not 3116 * display any portion of a window that lies outside of the window region 3117 * Parameters: HWND hWnd handle to window whose window region is to be set 3118 * HRGN hRgn handle to region 3119 * BOOL bRedraw window redraw flag 3120 * Variables : 3121 * Result : If the function succeeds, the return value is non-zero. 3122 * If the function fails, the return value is zero. 3123 * Remark : 3124 * Status : UNTESTED STUB 3125 * 3126 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3127 *****************************************************************************/ 3128 3129 int WIN32API SetWindowRgn(HWND hWnd, 3130 HRGN hRgn, 3131 BOOL bRedraw) 3132 { 3133 dprintf(("USER32:SetWindowRgn (%08xh,%08xh,%u) not implemented.\n", 3134 hWnd, 3135 hRgn, 3136 bRedraw)); 3137 3138 return (0); 3139 } 3140 3141 3142 /***************************************************************************** 3143 * Name : BOOL WIN32API SetWindowsHookW 3144 * Purpose : The SetWindowsHook function is not implemented in the Win32 API. 3145 * Win32-based applications should use the SetWindowsHookEx function. 3146 * Parameters: 3147 * Variables : 3148 * Result : 3149 * Remark : ARGH ! MICROSOFT ! 3150 * Status : UNTESTED STUB 3151 * 3152 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3153 *****************************************************************************/ 3154 3155 HHOOK WIN32API SetWindowsHookW(int nFilterType, HOOKPROC pfnFilterProc) 3156 3157 { 3158 return (FALSE); 3159 } 3160 3161 3162 /***************************************************************************** 3163 * Name : BOOL WIN32API ShowWindowAsync 3164 * Purpose : The ShowWindowAsync function sets the show state of a window 3165 * created by a different thread. 3166 * Parameters: HWND hwnd handle of window 3167 * int nCmdShow show state of window 3168 * Variables : 3169 * Result : If the window was previously visible, the return value is TRUE. 3170 * If the window was previously hidden, the return value is FALSE. 3171 * Remark : 3172 * Status : UNTESTED STUB 3173 * 3174 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3175 *****************************************************************************/ 3176 3177 BOOL WIN32API ShowWindowAsync (HWND hWnd, 3178 int nCmdShow) 3179 { 3180 dprintf(("USER32:ShowWindowAsync (%08xh,%08x) not implemented.\n", 3181 hWnd, 3182 nCmdShow)); 3183 3184 return (FALSE); 3185 } 3186 3187 3188 /***************************************************************************** 3189 * Name : BOOL WIN32API SwitchDesktop 3190 * Purpose : The SwitchDesktop function makes a desktop visible and activates 3191 * it. This enables the desktop to receive input from the user. The 3192 * calling process must have DESKTOP_SWITCHDESKTOP access to the 3193 * desktop for the SwitchDesktop function to succeed. 3194 * Parameters: 3195 * Variables : 3196 * Result : If the function succeeds, the return value is TRUE. 3197 * If the function fails, the return value is FALSE. To get extended 3198 * error information, call GetLastError. 3199 * Remark : 3200 * Status : UNTESTED STUB 3201 * 3202 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3203 *****************************************************************************/ 3204 3205 BOOL WIN32API SwitchDesktop(HDESK hDesktop) 3206 { 3207 dprintf(("USER32:SwitchDesktop (%08x) not implemented.\n", 3208 hDesktop)); 3209 3210 return (FALSE); 3211 } 3212 3213 3214 /***************************************************************************** 3215 * Name : WORD WIN32API TileWindows 3216 * Purpose : The TileWindows function tiles the specified windows, or the child 3217 * windows of the specified parent window. 3218 * Parameters: HWND hwndParent handle of parent window 3219 * WORD wFlags types of windows not to arrange 3220 * LPCRECT lpRect rectangle to arrange windows in 3221 * WORD cChildrenb number of windows to arrange 3222 * const HWND *ahwndChildren array of window handles 3223 * Variables : 3224 * Result : If the function succeeds, the return value is the number of 3225 * windows arranged. 3226 * If the function fails, the return value is zero. 3227 * Remark : 3228 * Status : UNTESTED STUB 3229 * 3230 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3231 *****************************************************************************/ 3232 3233 WORD WIN32API TileWindows(HWND hwndParent, 3234 UINT wFlags, 3235 const LPRECT lpRect, 3236 UINT cChildrenb, 3237 const HWND *ahwndChildren) 3238 { 3239 dprintf(("USER32:TileWindows (%08xh,%08xh,%08xh,%08xh,%08x) not implemented.\n", 3240 hwndParent, 3241 wFlags, 3242 lpRect, 3243 cChildrenb, 3244 ahwndChildren)); 3245 3246 return (0); 3247 } 3248 3249 1568 //****************************************************************************** 1569 //****************************************************************************** 1570 BOOL WIN32API RegisterHotKey(HWND hwnd, int idHotKey, UINT fuModifiers, UINT uVirtKey) 1571 { 1572 #ifdef DEBUG 1573 WriteLog("USER32: RegisterHotKey, not implemented\n"); 1574 #endif 1575 hwnd = Win32Window::Win32ToOS2Handle(hwnd); 1576 return(TRUE); 1577 } 1578 //****************************************************************************** 1579 //****************************************************************************** 1580 BOOL WIN32API SetKeyboardState(PBYTE lpKeyState) 1581 { 1582 #ifdef DEBUG 1583 WriteLog("USER32: SetKeyboardState, not implemented\n"); 1584 #endif 1585 return(TRUE); 1586 } 3250 1587 /***************************************************************************** 3251 1588 * Name : int WIN32API ToAscii … … 3270 1607 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3271 1608 *****************************************************************************/ 3272 3273 1609 int WIN32API ToAscii(UINT uVirtKey, 3274 1610 UINT uScanCode, … … 3286 1622 return (0); 3287 1623 } 3288 3289 3290 1624 /***************************************************************************** 3291 1625 * Name : int WIN32API ToAsciiEx … … 3311 1645 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3312 1646 *****************************************************************************/ 3313 3314 1647 int WIN32API ToAsciiEx(UINT uVirtKey, 3315 1648 UINT uScanCode, … … 3329 1662 return (0); 3330 1663 } 3331 3332 3333 1664 /***************************************************************************** 3334 1665 * Name : int WIN32API ToUnicode … … 3364 1695 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3365 1696 *****************************************************************************/ 3366 3367 1697 int WIN32API ToUnicode(UINT uVirtKey, 3368 1698 UINT uScanCode, … … 3382 1712 return (0); 3383 1713 } 3384 3385 3386 1714 /***************************************************************************** 3387 1715 * Name : BOOL WIN32API UnloadKeyboardLayout … … 3397 1725 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3398 1726 *****************************************************************************/ 3399 3400 1727 BOOL WIN32API UnloadKeyboardLayout (HKL hkl) 3401 1728 { … … 3404 1731 3405 1732 return (0); 1733 } 1734 //****************************************************************************** 1735 //****************************************************************************** 1736 BOOL WIN32API UnregisterHotKey(HWND hwnd, int idHotKey) 1737 { 1738 #ifdef DEBUG 1739 WriteLog("USER32: UnregisterHotKey, not implemented\n"); 1740 #endif 1741 hwnd = Win32Window::Win32ToOS2Handle(hwnd); 1742 1743 return(TRUE); 1744 } 1745 //****************************************************************************** 1746 //SvL: 24-6-'97 - Added 1747 //****************************************************************************** 1748 WORD WIN32API VkKeyScanA( char ch) 1749 { 1750 #ifdef DEBUG 1751 WriteLog("USER32: VkKeyScanA\n"); 1752 #endif 1753 return O32_VkKeyScan(ch); 1754 } 1755 1756 1757 //CB: stopped here void aa(){}; 1758 1759 //****************************************************************************** 1760 //****************************************************************************** 1761 DWORD WIN32API MsgWaitForMultipleObjects( DWORD arg1, LPHANDLE arg2, BOOL arg3, DWORD arg4, DWORD arg5) 1762 { 1763 #ifdef DEBUG 1764 WriteLog("USER32: MsgWaitForMultipleObjects\n"); 1765 #endif 1766 return O32_MsgWaitForMultipleObjects(arg1, arg2, arg3, arg4, arg5); 1767 } 1768 //****************************************************************************** 1769 //****************************************************************************** 1770 BOOL WIN32API CheckRadioButton( HWND arg1, UINT arg2, UINT arg3, UINT arg4) 1771 { 1772 #ifdef DEBUG 1773 WriteLog("USER32: CheckRadioButton\n"); 1774 #endif 1775 //CB: check radio buttons in interval 1776 if (arg2 > arg3) return (FALSE); 1777 for (UINT x=arg2;x <= arg3;x++) 1778 { 1779 SendDlgItemMessageA(arg1,x,BM_SETCHECK,(x == arg4) ? BST_CHECKED : BST_UNCHECKED,0); 1780 } 1781 return (TRUE); 1782 } 1783 //****************************************************************************** 1784 //****************************************************************************** 1785 BOOL WIN32API EndDeferWindowPos( HDWP arg1) 1786 { 1787 #ifdef DEBUG 1788 WriteLog("USER32: EndDeferWindowPos\n"); 1789 #endif 1790 return O32_EndDeferWindowPos(arg1); 1791 } 1792 //****************************************************************************** 1793 //****************************************************************************** 1794 INT WIN32API ExcludeUpdateRgn( HDC arg1, HWND arg2) 1795 { 1796 #ifdef DEBUG 1797 WriteLog("USER32: ExcludeUpdateRgn\n"); 1798 #endif 1799 return O32_ExcludeUpdateRgn(arg1, arg2); 1800 } 1801 //****************************************************************************** 1802 //****************************************************************************** 1803 int WIN32API FillRect(HDC arg1, const RECT * arg2, HBRUSH arg3) 1804 { 1805 #ifdef DEBUG 1806 WriteLog("USER32: FillRect (%d,%d)(%d,%d) brush %X\n", arg2->left, arg2->top, arg2->right, arg2->bottom, arg3); 1807 #endif 1808 return O32_FillRect(arg1, arg2, arg3); 1809 } 1810 //****************************************************************************** 1811 //****************************************************************************** 1812 HWND WIN32API FindWindowW( LPCWSTR arg1, LPCWSTR arg2) 1813 { 1814 char *astring1 = UnicodeToAsciiString((LPWSTR)arg1); 1815 char *astring2 = UnicodeToAsciiString((LPWSTR)arg2); 1816 HWND rc; 1817 1818 #ifdef DEBUG 1819 WriteLog("USER32: FindWindowW\n"); 1820 #endif 1821 rc = O32_FindWindow(astring1, astring2); 1822 FreeAsciiString(astring1); 1823 FreeAsciiString(astring2); 1824 return rc; 1825 } 1826 //****************************************************************************** 1827 //****************************************************************************** 1828 int WIN32API FrameRect( HDC arg1, const RECT * arg2, HBRUSH arg3) 1829 { 1830 #ifdef DEBUG 1831 WriteLog("USER32: FrameRect\n"); 1832 #endif 1833 return O32_FrameRect(arg1, arg2, arg3); 1834 } 1835 //****************************************************************************** 1836 //****************************************************************************** 1837 HWND WIN32API GetForegroundWindow(void) 1838 { 1839 #ifdef DEBUG 1840 WriteLog("USER32: GetForegroundWindow\n"); 1841 #endif 1842 return O32_GetForegroundWindow(); 1843 } 1844 //****************************************************************************** 1845 //****************************************************************************** 1846 int WIN32API GetKeyboardType( int arg1) 1847 { 1848 #ifdef DEBUG 1849 WriteLog("USER32: GetKeyboardType\n"); 1850 #endif 1851 return O32_GetKeyboardType(arg1); 1852 } 1853 //****************************************************************************** 1854 //****************************************************************************** 1855 HWND WIN32API GetLastActivePopup( HWND arg1) 1856 { 1857 #ifdef DEBUG 1858 WriteLog("USER32: GetLastActivePopup\n"); 1859 #endif 1860 return O32_GetLastActivePopup(arg1); 1861 } 1862 //****************************************************************************** 1863 //****************************************************************************** 1864 //****************************************************************************** 1865 //****************************************************************************** 1866 DWORD WIN32API GetQueueStatus( UINT arg1) 1867 { 1868 #ifdef DEBUG 1869 WriteLog("USER32: GetQueueStatus\n"); 1870 #endif 1871 return O32_GetQueueStatus(arg1); 1872 } 1873 //****************************************************************************** 1874 //****************************************************************************** 1875 DWORD WIN32API GetTabbedTextExtentA( HDC arg1, LPCSTR arg2, int arg3, int arg4, int * arg5) 1876 { 1877 #ifdef DEBUG 1878 WriteLog("USER32: GetTabbedTextExtentA\n"); 1879 #endif 1880 return O32_GetTabbedTextExtent(arg1, arg2, arg3, arg4, arg5); 1881 } 1882 //****************************************************************************** 1883 //****************************************************************************** 1884 DWORD WIN32API GetTabbedTextExtentW( HDC arg1, LPCWSTR arg2, int arg3, int arg4, int * arg5) 1885 { 1886 char *astring = UnicodeToAsciiString((LPWSTR)arg2); 1887 DWORD rc; 1888 1889 #ifdef DEBUG 1890 WriteLog("USER32: GetTabbedTextExtentW\n"); 1891 #endif 1892 rc = O32_GetTabbedTextExtent(arg1, astring, arg3, arg4, arg5); 1893 FreeAsciiString(astring); 1894 return rc; 1895 } 1896 //****************************************************************************** 1897 //****************************************************************************** 1898 #if 0 1899 int WIN32API GetUpdateRgn( HWND arg1, HRGN arg2, BOOL arg3) 1900 { 1901 #ifdef DEBUG 1902 WriteLog("USER32: GetUpdateRgn\n"); 1903 #endif 1904 return O32_GetUpdateRgn(arg1, arg2, arg3); 1905 } 1906 #endif 1907 //****************************************************************************** 1908 1909 1910 //****************************************************************************** 1911 //****************************************************************************** 1912 //****************************************************************************** 1913 DWORD WIN32API GetWindowThreadProcessId(HWND arg1, PDWORD arg2) 1914 { 1915 #ifdef DEBUG 1916 WriteLog("USER32: GetWindowThreadProcessId\n"); 1917 #endif 1918 return O32_GetWindowThreadProcessId(arg1, arg2); 1919 } 1920 //****************************************************************************** 1921 //****************************************************************************** 1922 #if 0 1923 BOOL WIN32API InvalidateRgn( HWND arg1, HRGN arg2, BOOL arg3) 1924 { 1925 #ifdef DEBUG 1926 WriteLog("USER32: InvalidateRgn\n"); 1927 #endif 1928 return O32_InvalidateRgn(arg1, arg2, arg3); 1929 } 1930 #endif 1931 //****************************************************************************** 1932 //****************************************************************************** 1933 BOOL WIN32API InvertRect( HDC arg1, const RECT * arg2) 1934 { 1935 #ifdef DEBUG 1936 WriteLog("USER32: InvertRect\n"); 1937 #endif 1938 return O32_InvertRect(arg1, arg2); 1939 } 1940 //****************************************************************************** 1941 //****************************************************************************** 1942 BOOL WIN32API MapDialogRect( HWND arg1, PRECT arg2) 1943 { 1944 #ifdef DEBUG 1945 WriteLog("USER32: MapDialogRect\n"); 1946 #endif 1947 return O32_MapDialogRect(arg1, arg2); 1948 } 1949 //****************************************************************************** 1950 //****************************************************************************** 1951 int WIN32API MapWindowPoints( HWND arg1, HWND arg2, LPPOINT arg3, UINT arg4) 1952 { 1953 #ifdef DEBUG 1954 WriteLog("USER32: MapWindowPoints\n"); 1955 #endif 1956 return O32_MapWindowPoints(arg1, arg2, arg3, arg4); 1957 } 1958 //****************************************************************************** 1959 //****************************************************************************** 1960 BOOL WIN32API ScreenToClient (HWND hwnd, LPPOINT pt) 1961 { 1962 #ifdef DEBUG 1963 WriteLog("USER32: ScreenToClient\n"); 1964 #endif 1965 Win32BaseWindow *wnd; 1966 PRECT rcl; 1967 1968 if (!hwnd) return (TRUE); 1969 wnd = Win32BaseWindow::GetWindowFromHandle (hwnd); 1970 if (!wnd) return (TRUE); 1971 1972 rcl = wnd->getClientRect(); 1973 pt->y = ScreenHeight - pt->y; 1974 OSLibWinMapWindowPoints (OSLIB_HWND_DESKTOP, wnd->getOS2WindowHandle(), (OSLIBPOINT *)pt, 1); 1975 pt->y = (rcl->bottom - rcl->top) - pt->y; 1976 return (TRUE); 1977 } 1978 //****************************************************************************** 1979 //****************************************************************************** 1980 #if 0 1981 BOOL WIN32API ScrollDC( HDC arg1, int arg2, int arg3, const RECT * arg4, const RECT * arg5, HRGN arg6, PRECT arg7) 1982 { 1983 #ifdef DEBUG 1984 WriteLog("USER32: ScrollDC\n"); 1985 #endif 1986 return O32_ScrollDC(arg1, arg2, arg3, arg4, arg5, arg6, arg7); 1987 } 1988 #endif 1989 //****************************************************************************** 1990 //****************************************************************************** 1991 LONG WIN32API TabbedTextOutA( HDC arg1, int arg2, int arg3, LPCSTR arg4, int arg5, int arg6, int * arg7, int arg8) 1992 { 1993 #ifdef DEBUG 1994 WriteLog("USER32: TabbedTextOutA\n"); 1995 #endif 1996 return O32_TabbedTextOut(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); 1997 } 1998 //****************************************************************************** 1999 //****************************************************************************** 2000 LONG WIN32API TabbedTextOutW( HDC arg1, int arg2, int arg3, LPCWSTR arg4, int arg5, int arg6, int * arg7, int arg8) 2001 { 2002 char *astring = UnicodeToAsciiString((LPWSTR)arg4); 2003 LONG rc; 2004 2005 #ifdef DEBUG 2006 WriteLog("USER32: TabbedTextOutW\n"); 2007 #endif 2008 rc = O32_TabbedTextOut(arg1, arg2, arg3, astring, arg5, arg6, arg7, arg8); 2009 FreeAsciiString(astring); 2010 return rc; 2011 } 2012 //****************************************************************************** 2013 //****************************************************************************** 2014 BOOL WIN32API ValidateRect( HWND arg1, const RECT * arg2) 2015 { 2016 #ifdef DEBUG 2017 WriteLog("USER32: ValidateRect\n"); 2018 #endif 2019 return O32_ValidateRect(arg1, arg2); 2020 } 2021 //****************************************************************************** 2022 //****************************************************************************** 2023 BOOL WIN32API ValidateRgn( HWND arg1, HRGN arg2) 2024 { 2025 #ifdef DEBUG 2026 WriteLog("USER32: ValidateRgn\n"); 2027 #endif 2028 return O32_ValidateRgn(arg1, arg2); 2029 } 2030 //****************************************************************************** 2031 //****************************************************************************** 2032 WORD WIN32API VkKeyScanW( WCHAR arg1) 2033 { 2034 #ifdef DEBUG 2035 WriteLog("USER32: VkKeyScanW\n"); 2036 #endif 2037 // NOTE: This will not work as is (needs UNICODE support) 2038 return O32_VkKeyScan((char)arg1); 2039 } 2040 //****************************************************************************** 2041 //TODO: Not complete 2042 //****************************************************************************** 2043 BOOL WIN32API GrayStringA(HDC hdc, HBRUSH hBrush, GRAYSTRINGPROC lpOutputFunc, 2044 LPARAM lpData, int nCount, int X, int Y, int nWidth, 2045 int nHeight) 2046 { 2047 BOOL rc; 2048 COLORREF curclr; 2049 2050 #ifdef DEBUG 2051 WriteLog("USER32: GrayStringA, not completely implemented\n"); 2052 #endif 2053 if(lpOutputFunc == NULL && lpData == NULL) { 2054 #ifdef DEBUG 2055 WriteLog("USER32: lpOutputFunc == NULL && lpData == NULL\n"); 2056 #endif 2057 return(FALSE); 2058 } 2059 if(lpOutputFunc) { 2060 return(lpOutputFunc(hdc, lpData, nCount)); 2061 } 2062 curclr = SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT)); 2063 rc = TextOutA(hdc, X, Y, (char *)lpData, nCount); 2064 SetTextColor(hdc, curclr); 2065 2066 return(rc); 2067 } 2068 //****************************************************************************** 2069 //****************************************************************************** 2070 BOOL WIN32API GrayStringW(HDC hdc, HBRUSH hBrush, GRAYSTRINGPROC lpOutputFunc, 2071 LPARAM lpData, int nCount, int X, int Y, int nWidth, 2072 int nHeight) 2073 { 2074 BOOL rc; 2075 char *astring; 2076 COLORREF curclr; 2077 2078 #ifdef DEBUG 2079 WriteLog("USER32: GrayStringW, not completely implemented\n"); 2080 #endif 2081 2082 if(lpOutputFunc == NULL && lpData == NULL) { 2083 #ifdef DEBUG 2084 WriteLog("USER32: lpOutputFunc == NULL && lpData == NULL\n"); 2085 #endif 2086 return(FALSE); 2087 } 2088 if(nCount == 0) 2089 nCount = UniStrlen((UniChar*)lpData); 2090 2091 if(lpOutputFunc) { 2092 return(lpOutputFunc(hdc, lpData, nCount)); 2093 } 2094 astring = UnicodeToAsciiString((LPWSTR)lpData); 2095 2096 curclr = SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT)); 2097 rc = TextOutA(hdc, X, Y, astring, nCount); 2098 SetTextColor(hdc, curclr); 2099 2100 FreeAsciiString(astring); 2101 return(rc); 2102 } 2103 //****************************************************************************** 2104 //TODO: 2105 //****************************************************************************** 2106 HANDLE WIN32API CopyImage(HANDLE hImage, UINT uType, int cxDesired, int cyDesired, UINT fuFlags) 2107 { 2108 #ifdef DEBUG 2109 WriteLog("USER32: CopyImage, not implemented\n"); 2110 #endif 2111 switch(uType) { 2112 case IMAGE_BITMAP: 2113 case IMAGE_CURSOR: 2114 case IMAGE_ICON: 2115 default: 2116 #ifdef DEBUG 2117 WriteLog("USER32: CopyImage, unknown type\n"); 2118 #endif 2119 return(NULL); 2120 } 2121 return(NULL); 2122 } 2123 //****************************************************************************** 2124 //****************************************************************************** 2125 int WIN32API GetKeyboardLayoutList(int nBuff, HKL *lpList) 2126 { 2127 #ifdef DEBUG 2128 WriteLog("USER32: GetKeyboardLayoutList, not implemented\n"); 2129 #endif 2130 return(0); 2131 } 2132 //****************************************************************************** 2133 //****************************************************************************** 2134 HKL WIN32API GetKeyboardLayout(DWORD dwLayout) 2135 { 2136 #ifdef DEBUG 2137 WriteLog("USER32: GetKeyboardLayout, not implemented\n"); 2138 #endif 2139 return(0); 2140 } 2141 //****************************************************************************** 2142 //****************************************************************************** 2143 int WIN32API LookupIconIdFromDirectory(PBYTE presbits, BOOL fIcon) 2144 { 2145 #ifdef DEBUG 2146 WriteLog("USER32: LookupIconIdFromDirectory, not implemented\n"); 2147 #endif 2148 return(0); 2149 } 2150 //****************************************************************************** 2151 //****************************************************************************** 2152 int WIN32API LookupIconIdFromDirectoryEx(PBYTE presbits, BOOL fIcon, 2153 int cxDesired, int cyDesired, 2154 UINT Flags) 2155 { 2156 #ifdef DEBUG 2157 WriteLog("USER32: LookupIconIdFromDirectoryEx, not implemented\n"); 2158 #endif 2159 return(0); 2160 } 2161 //****************************************************************************** 2162 //****************************************************************************** 2163 BOOL WIN32API SetWindowContextHelpId(HWND hwnd, DWORD dwContextHelpId) 2164 { 2165 #ifdef DEBUG 2166 WriteLog("USER32: SetWindowContextHelpId, not implemented\n"); 2167 #endif 2168 return(TRUE); 2169 } 2170 //****************************************************************************** 2171 //****************************************************************************** 2172 DWORD WIN32API GetWindowContextHelpId(HWND hwnd) 2173 { 2174 #ifdef DEBUG 2175 WriteLog("USER32: GetWindowContextHelpId, not implemented\n"); 2176 #endif 2177 return(0); 2178 } 2179 //****************************************************************************** 2180 //****************************************************************************** 2181 BOOL WIN32API GetMonitorInfoA(HMONITOR,LPMONITORINFO) 2182 { 2183 #ifdef DEBUG 2184 WriteLog("USER32: GetMonitorInfoA not supported!!\n"); 2185 #endif 2186 return(FALSE); 2187 } 2188 //****************************************************************************** 2189 //****************************************************************************** 2190 BOOL WIN32API GetMonitorInfoW(HMONITOR,LPMONITORINFO) 2191 { 2192 #ifdef DEBUG 2193 WriteLog("USER32: GetMonitorInfoW not supported!!\n"); 2194 #endif 2195 return(FALSE); 2196 } 2197 //****************************************************************************** 2198 //****************************************************************************** 2199 HMONITOR WIN32API MonitorFromWindow(HWND hwnd, DWORD dwFlags) 2200 { 2201 #ifdef DEBUG 2202 WriteLog("USER32: MonitorFromWindow not correctly supported??\n"); 2203 #endif 2204 return(0); 2205 } 2206 //****************************************************************************** 2207 //****************************************************************************** 2208 HMONITOR WIN32API MonitorFromRect(LPRECT rect, DWORD dwFlags) 2209 { 2210 #ifdef DEBUG 2211 WriteLog("USER32: MonitorFromRect not correctly supported??\n"); 2212 #endif 2213 return(0); 2214 } 2215 //****************************************************************************** 2216 //****************************************************************************** 2217 HMONITOR WIN32API MonitorFromPoint(POINT point, DWORD dwflags) 2218 { 2219 #ifdef DEBUG 2220 WriteLog("USER32: MonitorFromPoint not correctly supported??\n"); 2221 #endif 2222 return(0); 2223 } 2224 //****************************************************************************** 2225 //****************************************************************************** 2226 BOOL WIN32API EnumDisplayMonitors(HDC,LPRECT,MONITORENUMPROC,LPARAM) 2227 { 2228 #ifdef DEBUG 2229 WriteLog("USER32: EnumDisplayMonitors not supported??\n"); 2230 #endif 2231 return(FALSE); 2232 } 2233 //****************************************************************************** 2234 //****************************************************************************** 2235 BOOL WIN32API EnumDisplaySettingsA(LPCSTR lpszDeviceName, DWORD iModeNum, 2236 LPDEVMODEA lpDevMode) 2237 { 2238 #ifdef DEBUG 2239 WriteLog("USER32: EnumDisplaySettingsA FAKED\n"); 2240 #endif 2241 switch(iModeNum) { 2242 case 0: 2243 lpDevMode->dmBitsPerPel = 16; 2244 lpDevMode->dmPelsWidth = 768; 2245 lpDevMode->dmPelsHeight = 1024; 2246 lpDevMode->dmDisplayFlags = 0; 2247 lpDevMode->dmDisplayFrequency = 70; 2248 break; 2249 case 1: 2250 lpDevMode->dmBitsPerPel = 16; 2251 lpDevMode->dmPelsWidth = 640; 2252 lpDevMode->dmPelsHeight = 480; 2253 lpDevMode->dmDisplayFlags = 0; 2254 lpDevMode->dmDisplayFrequency = 70; 2255 break; 2256 default: 2257 return(FALSE); 2258 } 2259 return(TRUE); 2260 } 2261 //****************************************************************************** 2262 //****************************************************************************** 2263 LONG WIN32API ChangeDisplaySettingsA(LPDEVMODEA lpDevMode, DWORD dwFlags) 2264 { 2265 #ifdef DEBUG 2266 if(lpDevMode) { 2267 WriteLog("USER32: ChangeDisplaySettingsA FAKED %X\n", dwFlags); 2268 WriteLog("USER32: ChangeDisplaySettingsA lpDevMode->dmBitsPerPel %d\n", lpDevMode->dmBitsPerPel); 2269 WriteLog("USER32: ChangeDisplaySettingsA lpDevMode->dmPelsWidth %d\n", lpDevMode->dmPelsWidth); 2270 WriteLog("USER32: ChangeDisplaySettingsA lpDevMode->dmPelsHeight %d\n", lpDevMode->dmPelsHeight); 2271 } 2272 #endif 2273 return(DISP_CHANGE_SUCCESSFUL); 2274 } 2275 //****************************************************************************** 2276 //****************************************************************************** 2277 2278 2279 /***************************************************************************** 2280 * Name : BOOL WIN32API AnyPopup 2281 * Purpose : The AnyPopup function indicates whether an owned, visible, 2282 * top-level pop-up, or overlapped window exists on the screen. The 2283 * function searches the entire Windows screen, not just the calling 2284 * application's client area. 2285 * Parameters: VOID 2286 * Variables : 2287 * Result : If a pop-up window exists, the return value is TRUE even if the 2288 * pop-up window is completely covered by other windows. Otherwise, 2289 * it is FALSE. 2290 * Remark : AnyPopup is a Windows version 1.x function and is retained for 2291 * compatibility purposes. It is generally not useful. 2292 * Status : UNTESTED STUB 2293 * 2294 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2295 *****************************************************************************/ 2296 2297 BOOL WIN32API AnyPopup(VOID) 2298 { 2299 dprintf(("USER32:AnyPopup() not implemented.\n")); 2300 2301 return (FALSE); 2302 } 2303 2304 2305 2306 /***************************************************************************** 2307 * Name : LONG WIN32API ChangeDisplaySettingsW 2308 * Purpose : The ChangeDisplaySettings function changes the display settings 2309 * to the specified graphics mode. 2310 * Parameters: LPDEVMODEW lpDevModeW 2311 * DWORD dwFlags 2312 * Variables : 2313 * Result : DISP_CHANGE_SUCCESSFUL The settings change was successful. 2314 * DISP_CHANGE_RESTART The computer must be restarted in order for the graphics mode to work. 2315 * DISP_CHANGE_BADFLAGS An invalid set of flags was passed in. 2316 * DISP_CHANGE_FAILED The display driver failed the specified graphics mode. 2317 * DISP_CHANGE_BADMODE The graphics mode is not supported. 2318 * DISP_CHANGE_NOTUPDATED Unable to write settings to the registry. 2319 * Remark : 2320 * Status : UNTESTED STUB 2321 * 2322 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2323 *****************************************************************************/ 2324 2325 LONG WIN32API ChangeDisplaySettingsW(LPDEVMODEW lpDevMode, 2326 DWORD dwFlags) 2327 { 2328 dprintf(("USER32:ChangeDisplaySettingsW(%08xh,%08x) not implemented.\n", 2329 lpDevMode, 2330 dwFlags)); 2331 2332 return (ChangeDisplaySettingsA((LPDEVMODEA)lpDevMode, 2333 dwFlags)); 2334 } 2335 2336 /***************************************************************************** 2337 * Name : BOOL WIN32API CloseDesktop 2338 * Purpose : The CloseDesktop function closes an open handle of a desktop 2339 * object. A desktop is a secure object contained within a window 2340 * station object. A desktop has a logical display surface and 2341 * contains windows, menus and hooks. 2342 * Parameters: HDESK hDesktop 2343 * Variables : 2344 * Result : If the function succeeds, the return value is TRUE. 2345 * If the functions fails, the return value is FALSE. To get 2346 * extended error information, call GetLastError. 2347 * Remark : 2348 * Status : UNTESTED STUB 2349 * 2350 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2351 *****************************************************************************/ 2352 2353 BOOL WIN32API CloseDesktop(HDESK hDesktop) 2354 { 2355 dprintf(("USER32:CloseDesktop(%08x) not implemented.\n", 2356 hDesktop)); 2357 2358 return (FALSE); 2359 } 2360 2361 2362 /***************************************************************************** 2363 * Name : BOOL WIN32API CloseWindowStation 2364 * Purpose : The CloseWindowStation function closes an open window station handle. 2365 * Parameters: HWINSTA hWinSta 2366 * Variables : 2367 * Result : 2368 * Remark : If the function succeeds, the return value is TRUE. 2369 * If the functions fails, the return value is FALSE. To get 2370 * extended error information, call GetLastError. 2371 * Status : UNTESTED STUB 2372 * 2373 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2374 *****************************************************************************/ 2375 2376 BOOL WIN32API CloseWindowStation(HWINSTA hWinSta) 2377 { 2378 dprintf(("USER32:CloseWindowStation(%08x) not implemented.\n", 2379 hWinSta)); 2380 2381 return (FALSE); 2382 } 2383 2384 2385 /***************************************************************************** 2386 * Name : HDESK WIN32API CreateDesktopA 2387 * Purpose : The CreateDesktop function creates a new desktop on the window 2388 * station associated with the calling process. 2389 * Parameters: LPCTSTR lpszDesktop name of the new desktop 2390 * LPCTSTR lpszDevice name of display device to assign to the desktop 2391 * LPDEVMODE pDevMode reserved; must be NULL 2392 * DWORD dwFlags flags to control interaction with other applications 2393 * DWORD dwDesiredAccess specifies access of returned handle 2394 * LPSECURITY_ATTRIBUTES lpsa specifies security attributes of the desktop 2395 * Variables : 2396 * Result : If the function succeeds, the return value is a handle of the 2397 * newly created desktop. 2398 * If the function fails, the return value is NULL. To get extended 2399 * error information, call GetLastError. 2400 * Remark : 2401 * Status : UNTESTED STUB 2402 * 2403 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2404 *****************************************************************************/ 2405 2406 HDESK WIN32API CreateDesktopA(LPCTSTR lpszDesktop, 2407 LPCTSTR lpszDevice, 2408 LPDEVMODEA pDevMode, 2409 DWORD dwFlags, 2410 DWORD dwDesiredAccess, 2411 LPSECURITY_ATTRIBUTES lpsa) 2412 { 2413 dprintf(("USER32:CreateDesktopA(%s,%s,%08xh,%08xh,%08xh,%08x) not implemented.\n", 2414 lpszDesktop, 2415 lpszDevice, 2416 pDevMode, 2417 dwFlags, 2418 dwDesiredAccess, 2419 lpsa)); 2420 2421 return (NULL); 2422 } 2423 2424 2425 /***************************************************************************** 2426 * Name : HDESK WIN32API CreateDesktopW 2427 * Purpose : The CreateDesktop function creates a new desktop on the window 2428 * station associated with the calling process. 2429 * Parameters: LPCTSTR lpszDesktop name of the new desktop 2430 * LPCTSTR lpszDevice name of display device to assign to the desktop 2431 * LPDEVMODE pDevMode reserved; must be NULL 2432 * DWORD dwFlags flags to control interaction with other applications 2433 * DWORD dwDesiredAccess specifies access of returned handle 2434 * LPSECURITY_ATTRIBUTES lpsa specifies security attributes of the desktop 2435 * Variables : 2436 * Result : If the function succeeds, the return value is a handle of the 2437 * newly created desktop. 2438 * If the function fails, the return value is NULL. To get extended 2439 * error information, call GetLastError. 2440 * Remark : 2441 * Status : UNTESTED STUB 2442 * 2443 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2444 *****************************************************************************/ 2445 2446 HDESK WIN32API CreateDesktopW(LPCTSTR lpszDesktop, 2447 LPCTSTR lpszDevice, 2448 LPDEVMODEW pDevMode, 2449 DWORD dwFlags, 2450 DWORD dwDesiredAccess, 2451 LPSECURITY_ATTRIBUTES lpsa) 2452 { 2453 dprintf(("USER32:CreateDesktopW(%s,%s,%08xh,%08xh,%08xh,%08x) not implemented.\n", 2454 lpszDesktop, 2455 lpszDevice, 2456 pDevMode, 2457 dwFlags, 2458 dwDesiredAccess, 2459 lpsa)); 2460 2461 return (NULL); 2462 } 2463 2464 2465 /***************************************************************************** 2466 * Name : HWINSTA WIN32API CreateWindowStationA 2467 * Purpose : The CreateWindowStation function creates a window station object. 2468 * It returns a handle that can be used to access the window station. 2469 * A window station is a secure object that contains a set of global 2470 * atoms, a clipboard, and a set of desktop objects. 2471 * Parameters: LPTSTR lpwinsta name of the new window station 2472 * DWORD dwReserved reserved; must be NULL 2473 * DWORD dwDesiredAccess specifies access of returned handle 2474 * LPSECURITY_ATTRIBUTES lpsa specifies security attributes of the window station 2475 * Variables : 2476 * Result : If the function succeeds, the return value is the handle to the 2477 * newly created window station. 2478 * If the function fails, the return value is NULL. To get extended 2479 * error information, call GetLastError. 2480 * Remark : 2481 * Status : UNTESTED STUB 2482 * 2483 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2484 *****************************************************************************/ 2485 2486 HWINSTA WIN32API CreateWindowStationA(LPTSTR lpWinSta, 2487 DWORD dwReserved, 2488 DWORD dwDesiredAccess, 2489 LPSECURITY_ATTRIBUTES lpsa) 2490 { 2491 dprintf(("USER32:CreateWindowStationA(%s,%08xh,%08xh,%08x) not implemented.\n", 2492 lpWinSta, 2493 dwReserved, 2494 dwDesiredAccess, 2495 lpsa)); 2496 2497 return (NULL); 2498 } 2499 2500 2501 /***************************************************************************** 2502 * Name : HWINSTA WIN32API CreateWindowStationW 2503 * Purpose : The CreateWindowStation function creates a window station object. 2504 * It returns a handle that can be used to access the window station. 2505 * A window station is a secure object that contains a set of global 2506 * atoms, a clipboard, and a set of desktop objects. 2507 * Parameters: LPTSTR lpwinsta name of the new window station 2508 * DWORD dwReserved reserved; must be NULL 2509 * DWORD dwDesiredAccess specifies access of returned handle 2510 * LPSECURITY_ATTRIBUTES lpsa specifies security attributes of the window station 2511 * Variables : 2512 * Result : If the function succeeds, the return value is the handle to the 2513 * newly created window station. 2514 * If the function fails, the return value is NULL. To get extended 2515 * error information, call GetLastError. 2516 * Remark : 2517 * Status : UNTESTED STUB 2518 * 2519 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2520 *****************************************************************************/ 2521 2522 HWINSTA WIN32API CreateWindowStationW(LPWSTR lpWinSta, 2523 DWORD dwReserved, 2524 DWORD dwDesiredAccess, 2525 LPSECURITY_ATTRIBUTES lpsa) 2526 { 2527 dprintf(("USER32:CreateWindowStationW(%s,%08xh,%08xh,%08x) not implemented.\n", 2528 lpWinSta, 2529 dwReserved, 2530 dwDesiredAccess, 2531 lpsa)); 2532 2533 return (NULL); 2534 } 2535 2536 /***************************************************************************** 2537 * Name : BOOL WIN32API EnumDesktopWindows 2538 * Purpose : The EnumDesktopWindows function enumerates all windows in a 2539 * desktop by passing the handle of each window, in turn, to an 2540 * application-defined callback function. 2541 * Parameters: HDESK hDesktop handle of desktop to enumerate 2542 * WNDENUMPROC lpfn points to application's callback function 2543 * LPARAM lParam 32-bit value to pass to the callback function 2544 * Variables : 2545 * Result : If the function succeeds, the return value is TRUE. 2546 * If the function fails, the return value is FALSE. To get 2547 * extended error information, call GetLastError. 2548 * Remark : 2549 * Status : UNTESTED STUB 2550 * 2551 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2552 *****************************************************************************/ 2553 2554 BOOL WIN32API EnumDesktopWindows(HDESK hDesktop, 2555 WNDENUMPROC lpfn, 2556 LPARAM lParam) 2557 { 2558 dprintf(("USER32:EnumDesktopWindows (%08xh,%08xh,%08x) not implemented.\n", 2559 hDesktop, 2560 lpfn, 2561 lParam)); 2562 2563 return (FALSE); 2564 } 2565 2566 2567 /***************************************************************************** 2568 * Name : BOOL WIN32API EnumDesktopsA 2569 * Purpose : The EnumDesktops function enumerates all desktops in the window 2570 * station assigned to the calling process. The function does so by 2571 * passing the name of each desktop, in turn, to an application- 2572 * defined callback function. 2573 * Parameters: HWINSTA hwinsta handle of window station to enumerate 2574 * DESKTOPENUMPROC lpEnumFunc points to application's callback function 2575 * LPARAM lParam 32-bit value to pass to the callback function 2576 * Variables : 2577 * Result : If the function succeeds, the return value is TRUE. 2578 * If the function fails, the return value is FALSE. To get extended 2579 * error information, call GetLastError. 2580 * Remark : 2581 * Status : UNTESTED STUB 2582 * 2583 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2584 *****************************************************************************/ 2585 2586 BOOL WIN32API EnumDesktopsA(HWINSTA hWinSta, 2587 DESKTOPENUMPROCA lpEnumFunc, 2588 LPARAM lParam) 2589 { 2590 dprintf(("USER32:EnumDesktopsA (%08xh,%08xh,%08x) not implemented.\n", 2591 hWinSta, 2592 lpEnumFunc, 2593 lParam)); 2594 2595 return (FALSE); 2596 } 2597 2598 2599 /***************************************************************************** 2600 * Name : BOOL WIN32API EnumDesktopsW 2601 * Purpose : The EnumDesktops function enumerates all desktops in the window 2602 * station assigned to the calling process. The function does so by 2603 * passing the name of each desktop, in turn, to an application- 2604 * defined callback function. 2605 * Parameters: HWINSTA hwinsta handle of window station to enumerate 2606 * DESKTOPENUMPROC lpEnumFunc points to application's callback function 2607 * LPARAM lParam 32-bit value to pass to the callback function 2608 * Variables : 2609 * Result : If the function succeeds, the return value is TRUE. 2610 * If the function fails, the return value is FALSE. To get extended 2611 * error information, call GetLastError. 2612 * Remark : 2613 * Status : UNTESTED STUB 2614 * 2615 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2616 *****************************************************************************/ 2617 2618 BOOL WIN32API EnumDesktopsW(HWINSTA hWinSta, 2619 DESKTOPENUMPROCW lpEnumFunc, 2620 LPARAM lParam) 2621 { 2622 dprintf(("USER32:EnumDesktopsW (%08xh,%08xh,%08x) not implemented.\n", 2623 hWinSta, 2624 lpEnumFunc, 2625 lParam)); 2626 2627 return (FALSE); 2628 } 2629 2630 2631 2632 /***************************************************************************** 2633 * Name : BOOL WIN32API EnumDisplaySettingsW 2634 * Purpose : The EnumDisplaySettings function obtains information about one 2635 * of a display device's graphics modes. You can obtain information 2636 * for all of a display device's graphics modes by making a series 2637 * of calls to this function. 2638 * Parameters: LPCTSTR lpszDeviceName specifies the display device 2639 * DWORD iModeNum specifies the graphics mode 2640 * LPDEVMODE lpDevMode points to structure to receive settings 2641 * Variables : 2642 * Result : If the function succeeds, the return value is TRUE. 2643 * If the function fails, the return value is FALSE. 2644 * Remark : 2645 * Status : UNTESTED STUB 2646 * 2647 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2648 *****************************************************************************/ 2649 2650 BOOL WIN32API EnumDisplaySettingsW(LPCSTR lpszDeviceName, 2651 DWORD iModeNum, 2652 LPDEVMODEW lpDevMode) 2653 { 2654 dprintf(("USER32:EnumDisplaySettingsW (%s,%08xh,%08x) not implemented.\n", 2655 lpszDeviceName, 2656 iModeNum, 2657 lpDevMode)); 2658 2659 return (EnumDisplaySettingsA(lpszDeviceName, 2660 iModeNum, 2661 (LPDEVMODEA)lpDevMode)); 2662 } 2663 2664 2665 /***************************************************************************** 2666 * Name : BOOL WIN32API EnumWindowStationsA 2667 * Purpose : The EnumWindowStations function enumerates all windowstations 2668 * in the system by passing the name of each window station, in 2669 * turn, to an application-defined callback function. 2670 * Parameters: 2671 * Variables : WINSTAENUMPROC lpEnumFunc points to application's callback function 2672 * LPARAM lParam 32-bit value to pass to the callback function 2673 * Result : If the function succeeds, the return value is TRUE. 2674 * If the function fails the return value is FALSE. To get extended 2675 * error information, call GetLastError. 2676 * Remark : 2677 * Status : UNTESTED STUB 2678 * 2679 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2680 *****************************************************************************/ 2681 2682 BOOL WIN32API EnumWindowStationsA(WINSTAENUMPROCA lpEnumFunc, 2683 LPARAM lParam) 2684 { 2685 dprintf(("USER32:EnumWindowStationsA (%08xh,%08x) not implemented.\n", 2686 lpEnumFunc, 2687 lParam)); 2688 2689 return (FALSE); 2690 } 2691 2692 2693 /***************************************************************************** 2694 * Name : BOOL WIN32API EnumWindowStationsW 2695 * Purpose : The EnumWindowStations function enumerates all windowstations 2696 * in the system by passing the name of each window station, in 2697 * turn, to an application-defined callback function. 2698 * Parameters: 2699 * Variables : WINSTAENUMPROC lpEnumFunc points to application's callback function 2700 * LPARAM lParam 32-bit value to pass to the callback function 2701 * Result : If the function succeeds, the return value is TRUE. 2702 * If the function fails the return value is FALSE. To get extended 2703 * error information, call GetLastError. 2704 * Remark : 2705 * Status : UNTESTED STUB 2706 * 2707 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2708 *****************************************************************************/ 2709 2710 BOOL WIN32API EnumWindowStationsW(WINSTAENUMPROCW lpEnumFunc, 2711 LPARAM lParam) 2712 { 2713 dprintf(("USER32:EnumWindowStationsW (%08xh,%08x) not implemented.\n", 2714 lpEnumFunc, 2715 lParam)); 2716 2717 return (FALSE); 2718 } 2719 2720 2721 2722 /***************************************************************************** 2723 * Name : BOOL WIN32API GetInputState 2724 * Purpose : The GetInputState function determines whether there are 2725 * mouse-button or keyboard messages in the calling thread's message queue. 2726 * Parameters: 2727 * Variables : 2728 * Result : If the queue contains one or more new mouse-button or keyboard 2729 * messages, the return value is TRUE. 2730 * If the function fails, the return value is FALSE. 2731 * Remark : 2732 * Status : UNTESTED STUB 2733 * 2734 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2735 *****************************************************************************/ 2736 2737 BOOL WIN32API GetInputState(VOID) 2738 { 2739 dprintf(("USER32:GetInputState () not implemented.\n")); 2740 2741 return (FALSE); 2742 } 2743 2744 2745 /***************************************************************************** 2746 * Name : UINT WIN32API GetKBCodePage 2747 * Purpose : The GetKBCodePage function is provided for compatibility with 2748 * earlier versions of Windows. In the Win32 application programming 2749 * interface (API) it just calls the GetOEMCP function. 2750 * Parameters: 2751 * Variables : 2752 * Result : If the function succeeds, the return value is an OEM code-page 2753 * identifier, or it is the default identifier if the registry 2754 * value is not readable. For a list of OEM code-page identifiers, 2755 * see GetOEMCP. 2756 * Remark : 2757 * Status : UNTESTED 2758 * 2759 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2760 *****************************************************************************/ 2761 2762 UINT WIN32API GetKBCodePage(VOID) 2763 { 2764 return (GetOEMCP()); 2765 } 2766 2767 2768 /***************************************************************************** 2769 * Name : HWINSTA WIN32API GetProcessWindowStation 2770 * Purpose : The GetProcessWindowStation function returns a handle of the 2771 * window station associated with the calling process. 2772 * Parameters: 2773 * Variables : 2774 * Result : If the function succeeds, the return value is a handle of the 2775 * window station associated with the calling process. 2776 * If the function fails, the return value is NULL. This can occur 2777 * if the calling process is not an application written for Windows 2778 * NT. To get extended error information, call GetLastError. 2779 * Remark : 2780 * Status : UNTESTED STUB 2781 * 2782 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2783 *****************************************************************************/ 2784 2785 HWINSTA WIN32API GetProcessWindowStation(VOID) 2786 { 2787 dprintf(("USER32:GetProcessWindowStation () not implemented.\n")); 2788 2789 return (NULL); 2790 } 2791 2792 2793 2794 /***************************************************************************** 2795 * Name : HDESK WIN32API GetThreadDesktop 2796 * Purpose : The GetThreadDesktop function returns a handle to the desktop 2797 * associated with a specified thread. 2798 * Parameters: DWORD dwThreadId thread identifier 2799 * Variables : 2800 * Result : If the function succeeds, the return value is the handle of the 2801 * desktop associated with the specified thread. 2802 * Remark : 2803 * Status : UNTESTED STUB 2804 * 2805 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2806 *****************************************************************************/ 2807 2808 HDESK WIN32API GetThreadDesktop(DWORD dwThreadId) 2809 { 2810 dprintf(("USER32:GetThreadDesktop (%u) not implemented.\n", 2811 dwThreadId)); 2812 2813 return (NULL); 2814 } 2815 2816 2817 /***************************************************************************** 2818 * Name : BOOL WIN32API GetUserObjectInformationA 2819 * Purpose : The GetUserObjectInformation function returns information about 2820 * a window station or desktop object. 2821 * Parameters: HANDLE hObj handle of object to get information for 2822 * int nIndex type of information to get 2823 * PVOID pvInfo points to buffer that receives the information 2824 * DWORD nLength size, in bytes, of pvInfo buffer 2825 * LPDWORD lpnLengthNeeded receives required size, in bytes, of pvInfo buffer 2826 * Variables : 2827 * Result : If the function succeeds, the return value is TRUE. 2828 * If the function fails, the return value is FALSE. To get extended 2829 * error information, call GetLastError. 2830 * Remark : 2831 * Status : UNTESTED STUB 2832 * 2833 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2834 *****************************************************************************/ 2835 2836 BOOL WIN32API GetUserObjectInformationA(HANDLE hObj, 2837 int nIndex, 2838 PVOID pvInfo, 2839 DWORD nLength, 2840 LPDWORD lpnLengthNeeded) 2841 { 2842 dprintf(("USER32:GetUserObjectInformationA (%08xh,%08xh,%08xh,%u,%08x) not implemented.\n", 2843 hObj, 2844 nIndex, 2845 pvInfo, 2846 nLength, 2847 lpnLengthNeeded)); 2848 2849 return (FALSE); 2850 } 2851 2852 2853 /***************************************************************************** 2854 * Name : BOOL WIN32API GetUserObjectInformationW 2855 * Purpose : The GetUserObjectInformation function returns information about 2856 * a window station or desktop object. 2857 * Parameters: HANDLE hObj handle of object to get information for 2858 * int nIndex type of information to get 2859 * PVOID pvInfo points to buffer that receives the information 2860 * DWORD nLength size, in bytes, of pvInfo buffer 2861 * LPDWORD lpnLengthNeeded receives required size, in bytes, of pvInfo buffer 2862 * Variables : 2863 * Result : If the function succeeds, the return value is TRUE. 2864 * If the function fails, the return value is FALSE. To get extended 2865 * error information, call GetLastError. 2866 * Remark : 2867 * Status : UNTESTED STUB 2868 * 2869 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2870 *****************************************************************************/ 2871 2872 BOOL WIN32API GetUserObjectInformationW(HANDLE hObj, 2873 int nIndex, 2874 PVOID pvInfo, 2875 DWORD nLength, 2876 LPDWORD lpnLengthNeeded) 2877 { 2878 dprintf(("USER32:GetUserObjectInformationW (%08xh,%08xh,%08xh,%u,%08x) not implemented.\n", 2879 hObj, 2880 nIndex, 2881 pvInfo, 2882 nLength, 2883 lpnLengthNeeded)); 2884 2885 return (FALSE); 2886 } 2887 2888 2889 /***************************************************************************** 2890 * Name : BOOL WIN32API GetUserObjectSecurity 2891 * Purpose : The GetUserObjectSecurity function retrieves security information 2892 * for the specified user object. 2893 * Parameters: HANDLE hObj handle of user object 2894 * SECURITY_INFORMATION * pSIRequested address of requested security information 2895 * LPSECURITY_DESCRIPTOR pSID address of security descriptor 2896 * DWORD nLength size of buffer for security descriptor 2897 * LPDWORD lpnLengthNeeded address of required size of buffer 2898 * Variables : 2899 * Result : If the function succeeds, the return value is TRUE. 2900 * If the function fails, the return value is FALSE. To get extended 2901 * error information, call GetLastError. 2902 * Remark : 2903 * Status : UNTESTED STUB 2904 * 2905 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2906 *****************************************************************************/ 2907 2908 BOOL WIN32API GetUserObjectSecurity(HANDLE hObj, 2909 SECURITY_INFORMATION * pSIRequested, 2910 LPSECURITY_DESCRIPTOR pSID, 2911 DWORD nLength, 2912 LPDWORD lpnLengthNeeded) 2913 { 2914 dprintf(("USER32:GetUserObjectSecurity (%08xh,%08xh,%08xh,%u,%08x) not implemented.\n", 2915 hObj, 2916 pSIRequested, 2917 pSID, 2918 nLength, 2919 lpnLengthNeeded)); 2920 2921 return (FALSE); 2922 } 2923 2924 2925 2926 /***************************************************************************** 2927 * Name : int WIN32API GetWindowRgn 2928 * Purpose : The GetWindowRgn function obtains a copy of the window region of a window. 2929 * Parameters: HWND hWnd handle to window whose window region is to be obtained 2930 * HRGN hRgn handle to region that receives a copy of the window region 2931 * Variables : 2932 * Result : NULLREGION, SIMPLEREGION, COMPLEXREGION, ERROR 2933 * Remark : 2934 * Status : UNTESTED STUB 2935 * 2936 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2937 *****************************************************************************/ 2938 2939 int WIN32API GetWindowRgn (HWND hWnd, 2940 HRGN hRgn) 2941 { 2942 dprintf(("USER32:GetWindowRgn (%08xh,%08x) not implemented.\n", 2943 hWnd, 2944 hRgn)); 2945 2946 return (NULLREGION); 2947 } 2948 2949 2950 2951 /***************************************************************************** 2952 * Name : HDESK WIN32API OpenDesktopA 2953 * Purpose : The OpenDesktop function returns a handle to an existing desktop. 2954 * A desktop is a secure object contained within a window station 2955 * object. A desktop has a logical display surface and contains 2956 * windows, menus and hooks. 2957 * Parameters: LPCTSTR lpszDesktopName name of the desktop to open 2958 * DWORD dwFlags flags to control interaction with other applications 2959 * BOOL fInherit specifies whether returned handle is inheritable 2960 * DWORD dwDesiredAccess specifies access of returned handle 2961 * Variables : 2962 * Result : If the function succeeds, the return value is the handle to the 2963 * opened desktop. 2964 * If the function fails, the return value is NULL. To get extended 2965 * error information, call GetLastError. 2966 * Remark : 2967 * Status : UNTESTED STUB 2968 * 2969 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2970 *****************************************************************************/ 2971 2972 HDESK WIN32API OpenDesktopA(LPCTSTR lpszDesktopName, 2973 DWORD dwFlags, 2974 BOOL fInherit, 2975 DWORD dwDesiredAccess) 2976 { 2977 dprintf(("USER32:OpenDesktopA (%s,%08xh,%08xh,%08x) not implemented.\n", 2978 lpszDesktopName, 2979 dwFlags, 2980 fInherit, 2981 dwDesiredAccess)); 2982 2983 return (NULL); 2984 } 2985 2986 2987 /***************************************************************************** 2988 * Name : HDESK WIN32API OpenDesktopW 2989 * Purpose : The OpenDesktop function returns a handle to an existing desktop. 2990 * A desktop is a secure object contained within a window station 2991 * object. A desktop has a logical display surface and contains 2992 * windows, menus and hooks. 2993 * Parameters: LPCTSTR lpszDesktopName name of the desktop to open 2994 * DWORD dwFlags flags to control interaction with other applications 2995 * BOOL fInherit specifies whether returned handle is inheritable 2996 * DWORD dwDesiredAccess specifies access of returned handle 2997 * Variables : 2998 * Result : If the function succeeds, the return value is the handle to the 2999 * opened desktop. 3000 * If the function fails, the return value is NULL. To get extended 3001 * error information, call GetLastError. 3002 * Remark : 3003 * Status : UNTESTED STUB 3004 * 3005 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3006 *****************************************************************************/ 3007 3008 HDESK WIN32API OpenDesktopW(LPCTSTR lpszDesktopName, 3009 DWORD dwFlags, 3010 BOOL fInherit, 3011 DWORD dwDesiredAccess) 3012 { 3013 dprintf(("USER32:OpenDesktopW (%s,%08xh,%08xh,%08x) not implemented.\n", 3014 lpszDesktopName, 3015 dwFlags, 3016 fInherit, 3017 dwDesiredAccess)); 3018 3019 return (NULL); 3020 } 3021 3022 3023 /***************************************************************************** 3024 * Name : HDESK WIN32API OpenInputDesktop 3025 * Purpose : The OpenInputDesktop function returns a handle to the desktop 3026 * that receives user input. The input desktop is a desktop on the 3027 * window station associated with the logged-on user. 3028 * Parameters: DWORD dwFlags flags to control interaction with other applications 3029 * BOOL fInherit specifies whether returned handle is inheritable 3030 * DWORD dwDesiredAccess specifies access of returned handle 3031 * Variables : 3032 * Result : If the function succeeds, the return value is a handle of the 3033 * desktop that receives user input. 3034 * If the function fails, the return value is NULL. To get extended 3035 * error information, call GetLastError. 3036 * Remark : 3037 * Status : UNTESTED STUB 3038 * 3039 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3040 *****************************************************************************/ 3041 3042 HDESK WIN32API OpenInputDesktop(DWORD dwFlags, 3043 BOOL fInherit, 3044 DWORD dwDesiredAccess) 3045 { 3046 dprintf(("USER32:OpenInputDesktop (%08xh,%08xh,%08x) not implemented.\n", 3047 dwFlags, 3048 fInherit, 3049 dwDesiredAccess)); 3050 3051 return (NULL); 3052 } 3053 3054 3055 /***************************************************************************** 3056 * Name : HWINSTA WIN32API OpenWindowStationA 3057 * Purpose : The OpenWindowStation function returns a handle to an existing 3058 * window station. 3059 * Parameters: LPCTSTR lpszWinStaName name of the window station to open 3060 * BOOL fInherit specifies whether returned handle is inheritable 3061 * DWORD dwDesiredAccess specifies access of returned handle 3062 * Variables : 3063 * Result : If the function succeeds, the return value is the handle to the 3064 * specified window station. 3065 * If the function fails, the return value is NULL. To get extended 3066 * error information, call GetLastError. 3067 * Remark : 3068 * Status : UNTESTED STUB 3069 * 3070 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3071 *****************************************************************************/ 3072 3073 HWINSTA WIN32API OpenWindowStationA(LPCTSTR lpszWinStaName, 3074 BOOL fInherit, 3075 DWORD dwDesiredAccess) 3076 { 3077 dprintf(("USER32:OpenWindowStatieonA (%s,%08xh,%08x) not implemented.\n", 3078 lpszWinStaName, 3079 fInherit, 3080 dwDesiredAccess)); 3081 3082 return (NULL); 3083 } 3084 3085 3086 /***************************************************************************** 3087 * Name : HWINSTA WIN32API OpenWindowStationW 3088 * Purpose : The OpenWindowStation function returns a handle to an existing 3089 * window station. 3090 * Parameters: LPCTSTR lpszWinStaName name of the window station to open 3091 * BOOL fInherit specifies whether returned handle is inheritable 3092 * DWORD dwDesiredAccess specifies access of returned handle 3093 * Variables : 3094 * Result : If the function succeeds, the return value is the handle to the 3095 * specified window station. 3096 * If the function fails, the return value is NULL. To get extended 3097 * error information, call GetLastError. 3098 3099 3100 * Remark : 3101 * Status : UNTESTED STUB 3102 * 3103 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3104 *****************************************************************************/ 3105 3106 HWINSTA WIN32API OpenWindowStationW(LPCTSTR lpszWinStaName, 3107 BOOL fInherit, 3108 DWORD dwDesiredAccess) 3109 { 3110 dprintf(("USER32:OpenWindowStatieonW (%s,%08xh,%08x) not implemented.\n", 3111 lpszWinStaName, 3112 fInherit, 3113 dwDesiredAccess)); 3114 3115 return (NULL); 3116 } 3117 3118 3119 /***************************************************************************** 3120 * Name : BOOL WIN32API PaintDesktop 3121 * Purpose : The PaintDesktop function fills the clipping region in the 3122 * specified device context with the desktop pattern or wallpaper. 3123 * The function is provided primarily for shell desktops. 3124 * Parameters: 3125 * Variables : 3126 * Result : If the function succeeds, the return value is TRUE. 3127 * If the function fails, the return value is FALSE. 3128 * Remark : 3129 * Status : UNTESTED STUB 3130 * 3131 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3132 *****************************************************************************/ 3133 3134 BOOL WIN32API PaintDesktop(HDC hdc) 3135 { 3136 dprintf(("USER32:PaintDesktop (%08x) not implemented.\n", 3137 hdc)); 3138 3139 return (FALSE); 3140 } 3141 3142 3143 3144 /***************************************************************************** 3145 * Name : VOID WIN32API SetDebugErrorLevel 3146 * Purpose : The SetDebugErrorLevel function sets the minimum error level at 3147 * which Windows will generate debugging events and pass them to a debugger. 3148 * Parameters: DWORD dwLevel debugging error level 3149 * Variables : 3150 * Result : 3151 * Remark : 3152 * Status : UNTESTED STUB 3153 * 3154 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3155 *****************************************************************************/ 3156 3157 VOID WIN32API SetDebugErrorLevel(DWORD dwLevel) 3158 { 3159 dprintf(("USER32:SetDebugErrorLevel (%08x) not implemented.\n", 3160 dwLevel)); 3161 } 3162 3163 3164 /***************************************************************************** 3165 * Name : BOOL WIN32API SetProcessWindowStation 3166 * Purpose : The SetProcessWindowStation function assigns a window station 3167 * to the calling process. This enables the process to access 3168 * objects in the window station such as desktops, the clipboard, 3169 * and global atoms. All subsequent operations on the window station 3170 * use the access rights granted to hWinSta. 3171 * Parameters: 3172 * Variables : 3173 * Result : If the function succeeds, the return value is TRUE. 3174 * If the function fails, the return value is FALSE. To get extended 3175 * error information, call GetLastError. 3176 * Remark : 3177 * Status : UNTESTED STUB 3178 * 3179 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3180 *****************************************************************************/ 3181 3182 BOOL WIN32API SetProcessWindowStation(HWINSTA hWinSta) 3183 { 3184 dprintf(("USER32:SetProcessWindowStation (%08x) not implemented.\n", 3185 hWinSta)); 3186 3187 return (FALSE); 3188 } 3189 3190 3191 /***************************************************************************** 3192 * Name : BOOL WIN32API SetThreadDesktop 3193 * Purpose : The SetThreadDesktop function assigns a desktop to the calling 3194 * thread. All subsequent operations on the desktop use the access 3195 * rights granted to hDesk. 3196 * Parameters: HDESK hDesk handle of the desktop to assign to this thread 3197 * Variables : 3198 * Result : If the function succeeds, the return value is TRUE. 3199 * If the function fails, the return value is FALSE. To get extended 3200 * error information, call GetLastError. 3201 * Remark : 3202 * Status : UNTESTED STUB 3203 * 3204 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3205 *****************************************************************************/ 3206 3207 BOOL WIN32API SetThreadDesktop(HDESK hDesktop) 3208 { 3209 dprintf(("USER32:SetThreadDesktop (%08x) not implemented.\n", 3210 hDesktop)); 3211 3212 return (FALSE); 3213 } 3214 3215 3216 /***************************************************************************** 3217 * Name : BOOL WIN32API SetUserObjectInformationA 3218 * Purpose : The SetUserObjectInformation function sets information about a 3219 * window station or desktop object. 3220 * Parameters: HANDLE hObject handle of the object for which to set information 3221 * int nIndex type of information to set 3222 * PVOID lpvInfo points to a buffer that contains the information 3223 * DWORD cbInfo size, in bytes, of lpvInfo buffer 3224 * Variables : 3225 * Result : If the function succeeds, the return value is TRUE. 3226 * If the function fails the return value is FALSE. To get extended 3227 * error information, call GetLastError. 3228 * Remark : 3229 * Status : UNTESTED STUB 3230 * 3231 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3232 *****************************************************************************/ 3233 3234 BOOL WIN32API SetUserObjectInformationA(HANDLE hObject, 3235 int nIndex, 3236 PVOID lpvInfo, 3237 DWORD cbInfo) 3238 { 3239 dprintf(("USER32:SetUserObjectInformationA (%08xh,%u,%08xh,%08x) not implemented.\n", 3240 hObject, 3241 nIndex, 3242 lpvInfo, 3243 cbInfo)); 3244 3245 return (FALSE); 3246 } 3247 3248 3249 /***************************************************************************** 3250 * Name : BOOL WIN32API SetUserObjectInformationW 3251 * Purpose : The SetUserObjectInformation function sets information about a 3252 * window station or desktop object. 3253 * Parameters: HANDLE hObject handle of the object for which to set information 3254 * int nIndex type of information to set 3255 * PVOID lpvInfo points to a buffer that contains the information 3256 * DWORD cbInfo size, in bytes, of lpvInfo buffer 3257 * Variables : 3258 * Result : If the function succeeds, the return value is TRUE. 3259 * If the function fails the return value is FALSE. To get extended 3260 * error information, call GetLastError. 3261 * Remark : 3262 * Status : UNTESTED STUB 3263 * 3264 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3265 *****************************************************************************/ 3266 3267 BOOL WIN32API SetUserObjectInformationW(HANDLE hObject, 3268 int nIndex, 3269 PVOID lpvInfo, 3270 DWORD cbInfo) 3271 { 3272 dprintf(("USER32:SetUserObjectInformationW (%08xh,%u,%08xh,%08x) not implemented.\n", 3273 hObject, 3274 nIndex, 3275 lpvInfo, 3276 cbInfo)); 3277 3278 return (FALSE); 3279 } 3280 3281 3282 /***************************************************************************** 3283 * Name : BOOL WIN32API SetUserObjectSecurity 3284 * Purpose : The SetUserObjectSecurity function sets the security of a user 3285 * object. This can be, for example, a window or a DDE conversation 3286 * Parameters: HANDLE hObject handle of user object 3287 * SECURITY_INFORMATION * psi address of security information 3288 * LPSECURITY_DESCRIPTOR psd address of security descriptor 3289 * Variables : 3290 * Result : If the function succeeds, the return value is TRUE. 3291 * If the function fails, the return value is FALSE. To get extended 3292 * error information, call GetLastError. 3293 * Remark : 3294 * Status : UNTESTED STUB 3295 * 3296 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3297 *****************************************************************************/ 3298 3299 BOOL WIN32API SetUserObjectSecurity(HANDLE hObject, 3300 SECURITY_INFORMATION * psi, 3301 LPSECURITY_DESCRIPTOR psd) 3302 { 3303 dprintf(("USER32:SetUserObjectSecuroty (%08xh,%08xh,%08x) not implemented.\n", 3304 hObject, 3305 psi, 3306 psd)); 3307 3308 return (FALSE); 3309 } 3310 3311 3312 /***************************************************************************** 3313 * Name : int WIN32API SetWindowRgn 3314 * Purpose : The SetWindowRgn function sets the window region of a window. The 3315 * window region determines the area within the window where the 3316 * operating system permits drawing. The operating system does not 3317 * display any portion of a window that lies outside of the window region 3318 * Parameters: HWND hWnd handle to window whose window region is to be set 3319 * HRGN hRgn handle to region 3320 * BOOL bRedraw window redraw flag 3321 * Variables : 3322 * Result : If the function succeeds, the return value is non-zero. 3323 * If the function fails, the return value is zero. 3324 * Remark : 3325 * Status : UNTESTED STUB 3326 * 3327 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3328 *****************************************************************************/ 3329 3330 int WIN32API SetWindowRgn(HWND hWnd, 3331 HRGN hRgn, 3332 BOOL bRedraw) 3333 { 3334 dprintf(("USER32:SetWindowRgn (%08xh,%08xh,%u) not implemented.\n", 3335 hWnd, 3336 hRgn, 3337 bRedraw)); 3338 3339 return (0); 3340 } 3341 3342 3343 /***************************************************************************** 3344 * Name : BOOL WIN32API SetWindowsHookW 3345 * Purpose : The SetWindowsHook function is not implemented in the Win32 API. 3346 * Win32-based applications should use the SetWindowsHookEx function. 3347 * Parameters: 3348 * Variables : 3349 * Result : 3350 * Remark : ARGH ! MICROSOFT ! 3351 * Status : UNTESTED STUB 3352 * 3353 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3354 *****************************************************************************/ 3355 3356 HHOOK WIN32API SetWindowsHookW(int nFilterType, HOOKPROC pfnFilterProc) 3357 3358 { 3359 return (FALSE); 3360 } 3361 3362 3363 /***************************************************************************** 3364 * Name : BOOL WIN32API ShowWindowAsync 3365 * Purpose : The ShowWindowAsync function sets the show state of a window 3366 * created by a different thread. 3367 * Parameters: HWND hwnd handle of window 3368 * int nCmdShow show state of window 3369 * Variables : 3370 * Result : If the window was previously visible, the return value is TRUE. 3371 * If the window was previously hidden, the return value is FALSE. 3372 * Remark : 3373 * Status : UNTESTED STUB 3374 * 3375 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3376 *****************************************************************************/ 3377 3378 BOOL WIN32API ShowWindowAsync (HWND hWnd, 3379 int nCmdShow) 3380 { 3381 dprintf(("USER32:ShowWindowAsync (%08xh,%08x) not implemented.\n", 3382 hWnd, 3383 nCmdShow)); 3384 3385 return (FALSE); 3386 } 3387 3388 3389 /***************************************************************************** 3390 * Name : BOOL WIN32API SwitchDesktop 3391 * Purpose : The SwitchDesktop function makes a desktop visible and activates 3392 * it. This enables the desktop to receive input from the user. The 3393 * calling process must have DESKTOP_SWITCHDESKTOP access to the 3394 * desktop for the SwitchDesktop function to succeed. 3395 * Parameters: 3396 * Variables : 3397 * Result : If the function succeeds, the return value is TRUE. 3398 * If the function fails, the return value is FALSE. To get extended 3399 * error information, call GetLastError. 3400 * Remark : 3401 * Status : UNTESTED STUB 3402 * 3403 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3404 *****************************************************************************/ 3405 3406 BOOL WIN32API SwitchDesktop(HDESK hDesktop) 3407 { 3408 dprintf(("USER32:SwitchDesktop (%08x) not implemented.\n", 3409 hDesktop)); 3410 3411 return (FALSE); 3412 } 3413 3414 3415 /***************************************************************************** 3416 * Name : WORD WIN32API TileWindows 3417 * Purpose : The TileWindows function tiles the specified windows, or the child 3418 * windows of the specified parent window. 3419 * Parameters: HWND hwndParent handle of parent window 3420 * WORD wFlags types of windows not to arrange 3421 * LPCRECT lpRect rectangle to arrange windows in 3422 * WORD cChildrenb number of windows to arrange 3423 * const HWND *ahwndChildren array of window handles 3424 * Variables : 3425 * Result : If the function succeeds, the return value is the number of 3426 * windows arranged. 3427 * If the function fails, the return value is zero. 3428 * Remark : 3429 * Status : UNTESTED STUB 3430 * 3431 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 3432 *****************************************************************************/ 3433 3434 WORD WIN32API TileWindows(HWND hwndParent, 3435 UINT wFlags, 3436 const LPRECT lpRect, 3437 UINT cChildrenb, 3438 const HWND *ahwndChildren) 3439 { 3440 dprintf(("USER32:TileWindows (%08xh,%08xh,%08xh,%08xh,%08x) not implemented.\n", 3441 hwndParent, 3442 wFlags, 3443 lpRect, 3444 cChildrenb, 3445 ahwndChildren)); 3446 3447 return (0); 3406 3448 } 3407 3449 … … 3462 3504 3463 3505 /***************************************************************************** 3464 * Name : VOID WIN32API keybd_event3465 * Purpose : The keybd_event function synthesizes a keystroke. The system3466 * can use such a synthesized keystroke to generate a WM_KEYUP or3467 * WM_KEYDOWN message. The keyboard driver's interrupt handler calls3468 * the keybd_event function.3469 * Parameters: BYTE bVk virtual-key code3470 3471 * BYTE bScan hardware scan code3472 * DWORD dwFlags flags specifying various function options3473 * DWORD dwExtraInfo additional data associated with keystroke3474 * Variables :3475 * Result :3476 * Remark :3477 * Status : UNTESTED STUB3478 *3479 * Author : Patrick Haller [Thu, 1998/02/26 11:55]3480 *****************************************************************************/3481 3482 VOID WIN32API keybd_event (BYTE bVk,3483 BYTE bScan,3484 DWORD dwFlags,3485 DWORD dwExtraInfo)3486 {3487 dprintf(("USER32:keybd_event (%u,%u,%08xh,%08x) not implemented.\n",3488 bVk,3489 bScan,3490 dwFlags,3491 dwExtraInfo));3492 }3493 3494 3495 /*****************************************************************************3496 * Name : VOID WIN32API mouse_event3497 * Purpose : The mouse_event function synthesizes mouse motion and button clicks.3498 * Parameters: DWORD dwFlags flags specifying various motion/click variants3499 * DWORD dx horizontal mouse position or position change3500 * DWORD dy vertical mouse position or position change3501 * DWORD cButtons unused, reserved for future use, set to zero3502 * DWORD dwExtraInfo 32 bits of application-defined information3503 * Variables :3504 * Result :3505 * Remark :3506 * Status : UNTESTED STUB3507 *3508 * Author : Patrick Haller [Thu, 1998/02/26 11:55]3509 *****************************************************************************/3510 3511 VOID WIN32API mouse_event(DWORD dwFlags,3512 DWORD dx,3513 DWORD dy,3514 DWORD cButtons,3515 DWORD dwExtraInfo)3516 {3517 dprintf(("USER32:mouse_event (%08xh,%u,%u,%u,%08x) not implemented.\n",3518 dwFlags,3519 dx,3520 dy,3521 cButtons,3522 dwExtraInfo));3523 }3524 3525 3526 /*****************************************************************************3527 3506 * Name : BOOL WIN32API SetShellWindow 3528 3507 * Purpose : Unknown
Note:
See TracChangeset
for help on using the changeset viewer.