Browse Source

sys/windows: add SHGetFolderPathW (#2213)

* sys/windows: add SHGetFolderPathW
* sys/windows: add some hittest constants
ftphikari 2 years ago
parent
commit
e9b6a8fc9a
2 changed files with 35 additions and 0 deletions
  1. 1 0
      core/sys/windows/shell32.odin
  2. 34 0
      core/sys/windows/types.odin

+ 1 - 0
core/sys/windows/shell32.odin

@@ -21,4 +21,5 @@ foreign shell32 {
 		psa: ^SECURITY_ATTRIBUTES,
 		psa: ^SECURITY_ATTRIBUTES,
 	) -> c_int ---
 	) -> c_int ---
 	SHFileOperationW :: proc(lpFileOp: LPSHFILEOPSTRUCTW) -> c_int ---
 	SHFileOperationW :: proc(lpFileOp: LPSHFILEOPSTRUCTW) -> c_int ---
+	SHGetFolderPathW :: proc(hwnd: HWND, csidl: c_int, hToken: HANDLE, dwFlags: DWORD, pszPath: LPWSTR) -> HRESULT ---
 }
 }

+ 34 - 0
core/sys/windows/types.odin

@@ -795,6 +795,37 @@ MSG :: struct {
 
 
 LPMSG :: ^MSG
 LPMSG :: ^MSG
 
 
+// WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
+HTERROR       :: -2
+HTTRANSPARENT :: -1
+HTNOWHERE     :: 0
+HTCLIENT      :: 1
+HTCAPTION     :: 2
+HTSYSMENU     :: 3
+HTGROWBOX     :: 4
+HTSIZE        :: HTGROWBOX
+HTMENU        :: 5
+HTHSCROLL     :: 6
+HTVSCROLL     :: 7
+HTMINBUTTON   :: 8
+HTMAXBUTTON   :: 9
+HTLEFT        :: 10
+HTRIGHT       :: 11
+HTTOP         :: 12
+HTTOPLEFT     :: 13
+HTTOPRIGHT    :: 14
+HTBOTTOM      :: 15
+HTBOTTOMLEFT  :: 16
+HTBOTTOMRIGHT :: 17
+HTBORDER      :: 18
+HTREDUCE      :: HTMINBUTTON
+HTZOOM        :: HTMAXBUTTON
+HTSIZEFIRST   :: HTLEFT
+HTSIZELAST    :: HTBOTTOMRIGHT
+HTOBJECT      :: 19
+HTCLOSE       :: 20
+HTHELP        :: 21
+
 TEXTMETRICW :: struct {
 TEXTMETRICW :: struct {
 	tmHeight: LONG,
 	tmHeight: LONG,
 	tmAscent: LONG,
 	tmAscent: LONG,
@@ -1221,6 +1252,9 @@ SWP_NOREPOSITION :: SWP_NOOWNERZORDER
 SWP_DEFERERASE     :: 0x2000 // same as SWP_DEFERDRAWING
 SWP_DEFERERASE     :: 0x2000 // same as SWP_DEFERDRAWING
 SWP_ASYNCWINDOWPOS :: 0x4000 // same as SWP_CREATESPB
 SWP_ASYNCWINDOWPOS :: 0x4000 // same as SWP_CREATESPB
 
 
+CSIDL_APPDATA        :: 0x001a // <user name>\Application Data
+CSIDL_COMMON_APPDATA :: 0x0023 // All Users\Application Data
+
 HWND_TOP       :: HWND( uintptr(0))     //  0
 HWND_TOP       :: HWND( uintptr(0))     //  0
 HWND_BOTTOM    :: HWND( uintptr(1))     //  1
 HWND_BOTTOM    :: HWND( uintptr(1))     //  1
 HWND_TOPMOST   :: HWND(~uintptr(0))     // -1
 HWND_TOPMOST   :: HWND(~uintptr(0))     // -1