diff --git a/core/sys/windows/shell32.odin b/core/sys/windows/shell32.odin index 1a0844b39..0fdcc69d7 100644 --- a/core/sys/windows/shell32.odin +++ b/core/sys/windows/shell32.odin @@ -38,6 +38,8 @@ foreign shell32 { DragQueryPoint :: proc(hDrop: HDROP, ppt: ^POINT) -> BOOL --- DragQueryFileW :: proc(hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT) -> UINT --- DragFinish :: proc(hDrop: HDROP) --- // @New + + AssocCreateForClasses :: proc (rgClasses: [^]ASSOCIATIONELEMENT, cClasses: ULONG, riid: REFIID, ppv: ^rawptr) -> HRESULT --- } APPBARDATA :: struct { diff --git a/core/sys/windows/types.odin b/core/sys/windows/types.odin index f9485c48c..bb0291e2a 100644 --- a/core/sys/windows/types.odin +++ b/core/sys/windows/types.odin @@ -5392,3 +5392,24 @@ FILETYPEATTRIBUTEFLAGS_Bits :: enum DWORD { AlwaysUseDirectInvoke = 22, } FILETYPEATTRIBUTEFLAGS :: bit_set[FILETYPEATTRIBUTEFLAGS_Bits; DWORD] + +ASSOCCLASS :: enum c_int { + SHELL_KEY = 0, + PROGID_KEY, + PROGID_STR, + CLSID_KEY, + CLSID_STR, + APP_KEY, + APP_STR, + SYSTEM_STR, + FOLDER, + STAR, + FIXED_PROGID_STR, + PROTOCOL_STR, +} + +ASSOCIATIONELEMENT :: struct { + ac: ASSOCCLASS, + hkClass: HKEY, + pszClass: PCWSTR, +}