Sfoglia il codice sorgente

Implemented more Win32 API functions.

woollybah 9 anni fa
parent
commit
9bb6c6243a
4 ha cambiato i file con 66 aggiunte e 44 eliminazioni
  1. 9 3
      win32.mod/kernel32.bmx
  2. 9 6
      win32.mod/kernel32.x
  3. 7 0
      win32.mod/user32.bmx
  4. 41 35
      win32.mod/user32.x

+ 9 - 3
win32.mod/kernel32.bmx

@@ -1,3 +1,4 @@
+Strict
 
 
 Extern "Win32"
 Extern "Win32"
 
 
@@ -33,8 +34,8 @@ Function GetFileAttributesW( lpFileName$z )
 
 
 Function GetCurrentThreadId()
 Function GetCurrentThreadId()
 
 
-Function GlobalAlloc:Byte Ptr(uFlags,dwBytes)
-Function GlobalSize(hMem:Byte Ptr)
+Function GlobalAlloc:Byte Ptr(uFlags:UInt,dwBytes:size_t)
+Function GlobalSize:size_t(hMem:Byte Ptr)
 Function GlobalFree(hMem:Byte Ptr)
 Function GlobalFree(hMem:Byte Ptr)
 Function GlobalLock:Byte Ptr(hMem:Byte Ptr)
 Function GlobalLock:Byte Ptr(hMem:Byte Ptr)
 Function GlobalUnlock(hMem:Byte Ptr)
 Function GlobalUnlock(hMem:Byte Ptr)
@@ -43,6 +44,11 @@ Const STD_INPUT_HANDLE=-10
 Const STD_OUTPUT_HANDLE=-11
 Const STD_OUTPUT_HANDLE=-11
 Const STD_ERROR_HANDLE=-12
 Const STD_ERROR_HANDLE=-12
 
 
-Function GetStdHandle(nStdHandle)
+Function GetLastError()
+
+Function GetStdHandle:Byte Ptr(nStdHandle)
+
+Function ReleaseMutex(mutex:Byte Ptr)
+Function CreateMutexW:Byte Ptr( security:Byte Ptr, owner:Int, name$w)
 
 
 End Extern
 End Extern

+ 9 - 6
win32.mod/kernel32.x

@@ -7,9 +7,12 @@ BBINT SetFileAttributesW(BBBYTE * ,BBINT )!
 BBINT GetFileAttributesA(BBBYTE * )!
 BBINT GetFileAttributesA(BBBYTE * )!
 BBINT GetFileAttributesW(BBBYTE * )!
 BBINT GetFileAttributesW(BBBYTE * )!
 BBINT GetCurrentThreadId()!
 BBINT GetCurrentThreadId()!
-BBINT GlobalAlloc(BBINT ,BBINT )!
-BBINT GlobalSize(BBINT )!
-BBINT GlobalFree(BBINT )!
-BBBYTE * GlobalLock(BBINT )!
-BBINT GlobalUnlock(BBINT )!
-BBINT GetStdHandle(BBINT )!
+HGLOBAL GlobalAlloc(UINT ,SIZE_T )!
+SIZE_T GlobalSize(HGLOBAL )!
+HGLOBAL GlobalFree(HGLOBAL )!
+BBBYTE * GlobalLock(HGLOBAL )!
+BBINT GlobalUnlock(HGLOBAL )!
+HANDLE __stdcall GetStdHandle(BBINT )!
+WINBOOL __stdcall ReleaseMutex(HANDLE)!
+HANDLE __stdcall CreateMutexW(LPSECURITY_ATTRIBUTES, WINBOOL , LPCWSTR)!
+DWORD __stdcall GetLastError()!

+ 7 - 0
win32.mod/user32.bmx

@@ -1191,6 +1191,8 @@ Function SetMenuItemInfoW( hmenu:Byte Ptr,item,fByPosition,info:Byte Ptr )
 Function GetMenuItemCount( hmenu:Byte Ptr )
 Function GetMenuItemCount( hmenu:Byte Ptr )
 Function SetWindowTextA( hWnd:Byte Ptr,text$z )
 Function SetWindowTextA( hWnd:Byte Ptr,text$z )
 Function SetWindowTextW( hWnd:Byte Ptr,text$w )
 Function SetWindowTextW( hWnd:Byte Ptr,text$w )
+Function GetWindowTextA( hWnd:Byte Ptr, lpString:Byte Ptr, maxCount:Int)
+Function GetWindowTextW( hWnd:Byte Ptr, lpString:Short Ptr, maxCount:Int)
 Function SetWindowPos( hWnd:Byte Ptr,hWndInsertAfter:Byte Ptr,x,y,cx,cy,uFlags )
 Function SetWindowPos( hWnd:Byte Ptr,hWndInsertAfter:Byte Ptr,x,y,cx,cy,uFlags )
 Function GetForegroundWindow:Byte Ptr()
 Function GetForegroundWindow:Byte Ptr()
 Function SetForegroundWindow(hWnd:Byte Ptr)
 Function SetForegroundWindow(hWnd:Byte Ptr)
@@ -1244,6 +1246,7 @@ Function GetWindowInfo( hWnd:Byte Ptr,winfo:Byte Ptr )
 Function GetCursorPos_( lpPoint:Int Ptr)="GetCursorPos" '"GetCursorPos@4"
 Function GetCursorPos_( lpPoint:Int Ptr)="GetCursorPos" '"GetCursorPos@4"
 
 
 Function EnumChildWindows( hWnd:Byte Ptr,lpfn:Byte Ptr,lp:Byte Ptr )
 Function EnumChildWindows( hWnd:Byte Ptr,lpfn:Byte Ptr,lp:Byte Ptr )
+Function EnumWindows( lpfn:Byte Ptr,lp:Byte Ptr )
 
 
 Function OpenClipboard(hWnd:Byte Ptr)
 Function OpenClipboard(hWnd:Byte Ptr)
 Function CloseClipboard()
 Function CloseClipboard()
@@ -1254,6 +1257,10 @@ Function IsClipboardFormatAvailable(format)
 
 
 Function DefDlgProcW(hDlg:Byte Ptr,Msg:UInt,wParam:Byte Ptr,lParam:Byte Ptr)
 Function DefDlgProcW(hDlg:Byte Ptr,Msg:UInt,wParam:Byte Ptr,lParam:Byte Ptr)
 
 
+Function GetModuleFileNameW:Int( hmodule:Byte Ptr, buffer:Short Ptr, sz:Int)
+Function GetWindowModuleFileNameW:UInt(hwnd:Byte Ptr, lpszFileName:Short Ptr, cchFileNameMax:UInt)
+Function GetClassNameW:Int( hwnd:Byte Ptr, dst:Short Ptr, maxlen:Int)
+
 'shellapi
 'shellapi
 
 
 Function DragAcceptFiles(hWnd:Byte Ptr,fAccept)
 Function DragAcceptFiles(hWnd:Byte Ptr,fAccept)

+ 41 - 35
win32.mod/user32.x

@@ -55,40 +55,40 @@ BBINT AppendMenuW(BBINT ,BBINT ,BBINT ,BBBYTE * )!
 BBINT SetMenuItemInfoA(BBINT ,BBINT ,BBINT ,BBBYTE * )!
 BBINT SetMenuItemInfoA(BBINT ,BBINT ,BBINT ,BBBYTE * )!
 BBINT SetMenuItemInfoW(BBINT ,BBINT ,BBINT ,BBBYTE * )!
 BBINT SetMenuItemInfoW(BBINT ,BBINT ,BBINT ,BBBYTE * )!
 BBINT GetMenuItemCount(BBINT )!
 BBINT GetMenuItemCount(BBINT )!
-BBINT SetWindowTextA(BBINT ,BBBYTE * )!
-BBINT SetWindowTextW(BBINT ,BBSHORT * )!
-BBINT SetWindowPos(BBINT ,BBINT ,BBINT ,BBINT ,BBINT ,BBINT ,BBINT )!
-BBINT GetForegroundWindow()!
-BBINT SetForegroundWindow(BBINT )!
-BBINT IsIconic(BBINT )!
-BBINT GetParent(BBINT )!
-BBINT GetWindowLongA(BBINT ,BBINT )!
-BBINT SetWindowLongA(BBINT ,BBINT ,BBINT )!
-BBINT GetWindowLongW(BBINT ,BBINT )!
-BBINT SetWindowLongW(BBINT ,BBINT ,BBINT )!
-BBINT GetClassLongA(BBINT ,BBINT )!
-BBINT SetClassLongA(BBINT ,BBINT ,BBINT )!
-BBINT GetClassLongW(BBINT ,BBINT )!
-BBINT SetClassLongW(BBINT ,BBINT ,BBINT )!
-BBINT IsZoomed(BBINT )!
-BBINT CallWindowProcA(BBBYTE * ,BBINT ,BBINT ,BBINT ,BBINT )!
-BBINT CallWindowProcW(BBBYTE * ,BBINT ,BBINT ,BBINT ,BBINT )!
+BBINT SetWindowTextA(HWND ,BBBYTE * )!
+BBINT SetWindowTextW(HWND ,BBSHORT * )!
+BBINT SetWindowPos(HWND ,HWND ,BBINT ,BBINT ,BBINT ,BBINT ,UINT )!
+HWND GetForegroundWindow()!
+BBINT SetForegroundWindow(HWND )!
+BBINT IsIconic(HWND )!
+HWND GetParent(HWND )!
+BBINT GetWindowLongA(HWND ,BBINT )!
+BBINT SetWindowLongA(HWND ,BBINT ,BBINT )!
+BBINT GetWindowLongW(HWND ,BBINT )!
+BBINT SetWindowLongW(HWND ,BBINT ,BBINT )!
+BBINT GetClassLongA(HWND ,BBINT )!
+BBINT SetClassLongA(HWND ,BBINT ,BBINT )!
+BBINT GetClassLongW(HWND ,BBINT )!
+BBINT SetClassLongW(HWND ,BBINT ,BBINT )!
+BBINT IsZoomed(HWND )!
+BBINT CallWindowProcA(BBBYTE * ,HWND ,UINT ,WPARAM ,LPARAM )!
+BBINT CallWindowProcW(BBBYTE * ,HWND ,UINT ,WPARAM ,LPARAM )!
 BBINT OleInitialize(BBBYTE * )!
 BBINT OleInitialize(BBBYTE * )!
 BBINT OleUninitialize()!
 BBINT OleUninitialize()!
 BBINT InitCommonControlsEx(const INITCOMMONCONTROLSEX *)!
 BBINT InitCommonControlsEx(const INITCOMMONCONTROLSEX *)!
-BBINT SetScrollPos(BBINT ,BBINT ,BBINT ,BBINT )!
-BBINT GetScrollPos(BBINT ,BBINT )!
-BBINT SetScrollRange(BBINT ,BBINT ,BBINT ,BBINT ,BBINT )!
-BBINT GetScrollRange(BBINT ,BBINT ,BBINT * ,BBINT * )!
-BBINT ShowScrollBar(BBINT ,BBINT ,BBINT )!
-BBINT EnableScrollBar(BBINT ,BBINT ,BBINT )!
-BBINT SetScrollInfo(BBINT ,BBINT ,void* ,BBINT )!
-BBINT GetScrollInfo(BBINT ,BBINT ,void* )!
-BBINT InvalidateRect(BBINT ,BBINT * ,BBINT )!
-BBINT ValidateRect(BBINT ,BBINT * )!
-BBINT BeginPaint(BBINT ,BBBYTE * )!
+BBINT SetScrollPos(HWND ,BBINT ,BBINT ,BBINT )!
+BBINT GetScrollPos(HWND ,BBINT )!
+BBINT SetScrollRange(HWND ,BBINT ,BBINT ,BBINT ,BBINT )!
+BBINT GetScrollRange(HWND ,BBINT ,BBINT * ,BBINT * )!
+BBINT ShowScrollBar(HWND ,BBINT ,BBINT )!
+BBINT EnableScrollBar(HWND ,BBINT ,BBINT )!
+BBINT SetScrollInfo(HWND ,BBINT ,void* ,BBINT )!
+BBINT GetScrollInfo(HWND ,BBINT ,void* )!
+BBINT InvalidateRect(HWND ,BBINT * ,BBINT )!
+BBINT ValidateRect(HWND ,BBINT * )!
+BBINT BeginPaint(HWND ,BBBYTE * )!
 BBINT FillRect(BBINT ,BBINT * ,BBINT )!
 BBINT FillRect(BBINT ,BBINT * ,BBINT )!
-BBINT EndPaint(BBINT ,BBBYTE * )!
+BBINT EndPaint(HWND ,BBBYTE * )!
 BBINT SetFocus(BBINT )!
 BBINT SetFocus(BBINT )!
 BBINT GetFocus()!
 BBINT GetFocus()!
 BBINT GetActiveWindow()!
 BBINT GetActiveWindow()!
@@ -100,12 +100,13 @@ BBINT GetKeyState(BBINT )!
 BBINT SetWindowsHookExW(BBINT ,BBBYTE * ,BBINT ,BBINT )!
 BBINT SetWindowsHookExW(BBINT ,BBBYTE * ,BBINT ,BBINT )!
 BBINT CallNextHookEx(BBINT ,BBINT ,BBINT ,BBINT )!
 BBINT CallNextHookEx(BBINT ,BBINT ,BBINT ,BBINT )!
 BBINT UnhookWindowsHookEx(BBINT )!
 BBINT UnhookWindowsHookEx(BBINT )!
-BBINT EnableWindow(BBINT ,BBINT )!
-BBINT IsWindowEnabled(BBINT )!
-BBINT IsWindowVisible(BBINT )!
-BBINT GetWindowInfo(BBINT ,BBBYTE * )!
+BBINT EnableWindow(HWND ,BBINT )!
+BBINT IsWindowEnabled(HWND )!
+BBINT IsWindowVisible(HWND )!
+BBINT GetWindowInfo(HWND ,BBBYTE * )!
 BBINT GetCursorPos(BBINT * )!
 BBINT GetCursorPos(BBINT * )!
-BBINT EnumChildWindows(BBINT ,BBBYTE * ,BBINT )!
+BBINT EnumChildWindows(HWND ,BBBYTE * ,LPARAM )!
+BBINT EnumWindows(BBBYTE * ,LPARAM )!
 BBINT OpenClipboard(BBINT )!
 BBINT OpenClipboard(BBINT )!
 BBINT CloseClipboard()!
 BBINT CloseClipboard()!
 BBINT SetClipboardData(BBINT ,BBINT )!
 BBINT SetClipboardData(BBINT ,BBINT )!
@@ -119,3 +120,8 @@ BBINT DragQueryFileW(BBINT ,BBINT ,BBSHORT * ,BBINT )!
 BBINT DragFinish(BBINT )!
 BBINT DragFinish(BBINT )!
 WINBOOL __stdcall _TrackMouseEvent(LPTRACKMOUSEEVENT )!
 WINBOOL __stdcall _TrackMouseEvent(LPTRACKMOUSEEVENT )!
 LONG_PTR __stdcall SetWindowLongPtrW(HWND ,int ,LONG_PTR )!
 LONG_PTR __stdcall SetWindowLongPtrW(HWND ,int ,LONG_PTR )!
+UINT __stdcall GetWindowModuleFileNameW(HWND ,LPWSTR ,UINT )!
+DWORD __stdcall GetModuleFileNameW(HMODULE , LPWSTR , DWORD )!
+int __stdcall GetWindowTextA(HWND ,LPSTR ,int )!
+int __stdcall GetWindowTextW(HWND ,LPWSTR ,int )!
+int __stdcall GetClassNameW(HWND ,LPWSTR ,int )!