diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2026-02-14 12:14:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-14 12:14:53 +0100 |
| commit | 67922a57e90c78992cbe85e10003bc5c05bc0453 (patch) | |
| tree | 1287461462ffcfc2fd4f12746b76cd2f3f668070 | |
| parent | f6d3500509ccc20de642472e0bc39bdc2707a673 (diff) | |
| parent | dcd93579f05e2e99c4c55ab8935716db1feafef3 (diff) | |
Merge pull request #6273 from blob1807/master
Add more Windows endpoints
| -rw-r--r-- | core/sys/windows/kernel32.odin | 1 | ||||
| -rw-r--r-- | core/sys/windows/ole32.odin | 2 | ||||
| -rw-r--r-- | core/sys/windows/shell32.odin | 2 | ||||
| -rw-r--r-- | core/sys/windows/types.odin | 1 | ||||
| -rw-r--r-- | core/sys/windows/user32.odin | 34 |
5 files changed, 33 insertions, 7 deletions
diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index 7d4ba76e0..670484489 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -470,6 +470,7 @@ foreign kernel32 { GlobalAlloc :: proc(flags: UINT, bytes: SIZE_T) -> LPVOID --- GlobalReAlloc :: proc(mem: LPVOID, bytes: SIZE_T, flags: UINT) -> LPVOID --- GlobalFree :: proc(mem: LPVOID) -> LPVOID --- + GlobalSize :: proc(Mem: LPVOID) -> SIZE_T --- GlobalLock :: proc(hMem: HGLOBAL) -> LPVOID --- GlobalUnlock :: proc(hMem: HGLOBAL) -> BOOL --- diff --git a/core/sys/windows/ole32.odin b/core/sys/windows/ole32.odin index 12cf40b81..d314eb343 100644 --- a/core/sys/windows/ole32.odin +++ b/core/sys/windows/ole32.odin @@ -1,6 +1,6 @@ package sys_windows -foreign import "system:Ole32.lib" +foreign import Ole32 "system:Ole32.lib" //objbase.h // Note(Dragos): https://learn.microsoft.com/en-us/windows/win32/api/objbase/ne-objbase-coinit makes you believe that MULTITHREADED == 3. That is wrong. See definition of objbase.h diff --git a/core/sys/windows/shell32.odin b/core/sys/windows/shell32.odin index c7d83f9f6..1a0844b39 100644 --- a/core/sys/windows/shell32.odin +++ b/core/sys/windows/shell32.odin @@ -31,6 +31,8 @@ foreign shell32 { SHSetKnownFolderPath :: proc(rfid: REFKNOWNFOLDERID, dwFlags: /* KNOWN_FOLDER_FLAG */ DWORD, hToken: HANDLE, pszPath: PCWSTR ) -> HRESULT --- SHGetKnownFolderPath :: proc(rfid: REFKNOWNFOLDERID, dwFlags: /* KNOWN_FOLDER_FLAG */ DWORD, hToken: HANDLE, ppszPath: ^LPWSTR) -> HRESULT --- + SHCreateItemFromParsingName :: proc(pszPath: PCWSTR, pbc: ^IBindCtx, riid: REFIID, ppv: ^rawptr) -> HRESULT --- + ExtractIconExW :: proc(pszFile: LPCWSTR, nIconIndex: INT, phiconLarge: ^HICON, phiconSmall: ^HICON, nIcons: UINT) -> UINT --- DragAcceptFiles :: proc(hWnd: HWND, fAccept: BOOL) --- DragQueryPoint :: proc(hDrop: HDROP, ppt: ^POINT) -> BOOL --- diff --git a/core/sys/windows/types.odin b/core/sys/windows/types.odin index 06156c912..b5621f621 100644 --- a/core/sys/windows/types.odin +++ b/core/sys/windows/types.odin @@ -4279,6 +4279,7 @@ CLSID_FileOpenDialog := &GUID{0xDC1C5A9C, 0xE88A, 0x4DDE, {0xA5, 0xA1, 0x60, 0xF CLSID_FileSaveDialog := &GUID{0xC0B4E2F3, 0xBA21, 0x4773, {0x8D, 0xBA, 0x33, 0x5E, 0xC9, 0x46, 0xEB, 0x8B}} CLSID_TaskbarList := &GUID{0x56FDF344, 0xFD6D, 0x11d0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}} +IID_IShellItem := &GUID{0x43826d1e, 0xe718, 0x42ee, {0xbc, 0x55, 0xa1, 0xe2, 0x61, 0xc3, 0x7b, 0xfe}} IID_IFileDialog := &GUID{0x42F85136, 0xDB7E, 0x439C, {0x85, 0xF1, 0xE4, 0x07, 0x5D, 0x13, 0x5F, 0xC8}} IID_IFileSaveDialog := &GUID{0x84BCCD23, 0x5FDE, 0x4CDB, {0xAE, 0xA4, 0xAF, 0x64, 0xB8, 0x3D, 0x78, 0xAB}} IID_IFileOpenDialog := &GUID{0xD57C7288, 0xD4AD, 0x4768, {0xBE, 0x02, 0x9D, 0x96, 0x95, 0x32, 0xD9, 0x60}} diff --git a/core/sys/windows/user32.odin b/core/sys/windows/user32.odin index e2ed1726b..ede920004 100644 --- a/core/sys/windows/user32.odin +++ b/core/sys/windows/user32.odin @@ -318,12 +318,26 @@ foreign user32 { GetProcessWindowStation :: proc() -> HWINSTA --- GetUserObjectInformationW :: proc(hObj: HANDLE, nIndex: GetUserObjectInformationFlags, pvInfo: PVOID, nLength: DWORD, lpnLengthNeeded: LPDWORD) -> BOOL --- - OpenClipboard :: proc(hWndNewOwner: HWND) -> BOOL --- - CloseClipboard :: proc() -> BOOL --- - GetClipboardData :: proc(uFormat: UINT) -> HANDLE --- - SetClipboardData :: proc(uFormat: UINT, hMem: HANDLE) -> HANDLE --- - IsClipboardFormatAvailable :: proc(format: UINT) -> BOOL --- - EmptyClipboard :: proc() -> BOOL --- + OpenClipboard :: proc(hWndNewOwner: HWND) -> BOOL --- + CloseClipboard :: proc() -> BOOL --- + GetClipboardData :: proc(uFormat: UINT) -> HANDLE --- + SetClipboardData :: proc(uFormat: UINT, hMem: HANDLE) -> HANDLE --- + IsClipboardFormatAvailable :: proc(format: UINT) -> BOOL --- + EmptyClipboard :: proc() -> BOOL --- + AddClipboardFormatListener :: proc(hwnd: HWND) -> BOOL --- + ChangeClipboardChain :: proc(hWndRemove: HWND, hWndNewNext: HWND) -> BOOL --- + CountClipboardFormats :: proc() -> c_int --- + EnumClipboardFormats :: proc(format: UINT) -> UINT --- + GetClipboardFormatNameW :: proc(format: UINT, lpszFormatName: LPWSTR, cchMaxCount: c_int) -> c_int --- + GetClipboardOwner :: proc() -> HWND--- + GetClipboardSequenceNumber :: proc() -> DWORD --- + GetClipboardViewer :: proc() -> HWND --- + GetOpenClipboardWindow :: proc() -> HWND --- + GetPriorityClipboardFormat :: proc(paFormatPriorityList: ^UINT, cFormats: c_int) -> c_int --- + GetUpdatedClipboardFormats :: proc(lpuiFormats: ^UINT, cFormats: UINT, pcFormatsOut: ^UINT) -> BOOL --- + RegisterClipboardFormatW :: proc(lpszFormat: LPCWSTR ) -> UINT --- + RemoveClipboardFormatListener :: proc(hwnd: HWND) -> BOOL --- + SetClipboardViewer :: proc(hWndNewViewer: HWND) -> HWND --- SetScrollInfo :: proc(hwnd: HWND, nBar: c_int, lpsi: ^SCROLLINFO, redraw: BOOL) -> c_int --- GetScrollInfo :: proc(hwnd: HWND, nBar: c_int, lpsi: ^SCROLLINFO) -> BOOL --- @@ -962,3 +976,11 @@ GW_OWNER :: 4 GW_CHILD :: 5 GW_ENABLEDPOPUP :: 6 GW_MAX :: 6 + +COPYDATASTRUCT :: struct { + dwData: ULONG_PTR, + cbData: DWORD, + lpData: PVOID, +} + +PCOPYDATASTRUCT :: ^COPYDATASTRUCT |