sys/windows: fix file picker dialog

This commit is contained in:
hikari
2022-06-07 17:59:15 +03:00
parent 176954a6d8
commit ae57a49915
3 changed files with 58 additions and 2 deletions

View File

@@ -27,8 +27,6 @@ OPENFILENAMEW :: struct {
lCustData: LPARAM,
lpfnHook: LPOFNHOOKPROC,
lpTemplateName: wstring,
lpEditInfo: rawptr, // LPEDITMENU,
lpstrPrompt: wstring,
pvReserved: rawptr,
dwReserved: DWORD,
FlagsEx: DWORD,

View File

@@ -11,8 +11,29 @@ COINIT :: enum DWORD {
SPEED_OVER_MEMORY = 0x8,
}
IUnknown :: struct {
using Vtbl: ^IUnknownVtbl,
}
IUnknownVtbl :: struct {
QueryInterface : proc "std" (This: ^IUnknown, riid: REFIID, ppvObject: ^rawptr) -> HRESULT,
AddRef : proc "std" (This: ^IUnknown) -> ULONG,
Release : proc "std" (This: ^IUnknown) -> ULONG,
}
LPUNKNOWN :: ^IUnknown
@(default_calling_convention="stdcall")
foreign Ole32 {
CoInitializeEx :: proc(reserved: rawptr, co_init: COINIT) -> HRESULT ---
CoUninitialize :: proc() ---
CoCreateInstance :: proc(
rclsid: REFCLSID,
pUnkOuter: LPUNKNOWN,
dwClsContext: DWORD,
riid: REFIID,
ppv: ^LPVOID,
) -> HRESULT ---
CoTaskMemFree :: proc(pv: rawptr) ---
}

View File

@@ -40,6 +40,7 @@ BYTE :: distinct u8
BOOLEAN :: distinct b8
GROUP :: distinct c_uint
LARGE_INTEGER :: distinct c_longlong
ULARGE_INTEGER :: distinct c_ulonglong
LONG :: c_long
UINT :: c_uint
INT :: c_int
@@ -121,6 +122,8 @@ LPWSADATA :: ^WSADATA
LPWSAPROTOCOL_INFO :: ^WSAPROTOCOL_INFO
LPSTR :: ^CHAR
LPWSTR :: ^WCHAR
OLECHAR :: WCHAR
LPOLESTR :: ^OLECHAR
LPFILETIME :: ^FILETIME
LPWSABUF :: ^WSABUF
LPWSAOVERLAPPED :: distinct rawptr
@@ -1639,7 +1642,41 @@ PGUID :: ^GUID
PCGUID :: ^GUID
LPGUID :: ^GUID
LPCGUID :: ^GUID
REFIID :: ^GUID
REFGUID :: GUID
IID :: GUID
CLSID :: GUID
REFCLSID :: ^CLSID
CLSCTX_INPROC_SERVER :: 0x1
CLSCTX_INPROC_HANDLER :: 0x2
CLSCTX_LOCAL_SERVER :: 0x4
CLSCTX_INPROC_SERVER16 :: 0x8
CLSCTX_REMOTE_SERVER :: 0x10
CLSCTX_INPROC_HANDLER16 :: 0x20
CLSCTX_RESERVED1 :: 0x40
CLSCTX_RESERVED2 :: 0x80
CLSCTX_RESERVED3 :: 0x100
CLSCTX_RESERVED4 :: 0x200
CLSCTX_NO_CODE_DOWNLOAD :: 0x400
CLSCTX_RESERVED5 :: 0x800
CLSCTX_NO_CUSTOM_MARSHAL :: 0x1000
CLSCTX_ENABLE_CODE_DOWNLOAD :: 0x2000
CLSCTX_NO_FAILURE_LOG :: 0x4000
CLSCTX_DISABLE_AAA :: 0x8000
CLSCTX_ENABLE_AAA :: 0x10000
CLSCTX_FROM_DEFAULT_CONTEXT :: 0x20000
CLSCTX_ACTIVATE_X86_SERVER :: 0x40000
CLSCTX_ACTIVATE_32_BIT_SERVER :: CLSCTX_ACTIVATE_X86_SERVER
CLSCTX_ACTIVATE_64_BIT_SERVER :: 0x80000
CLSCTX_ENABLE_CLOAKING :: 0x100000
CLSCTX_APPCONTAINER :: 0x400000
CLSCTX_ACTIVATE_AAA_AS_IU :: 0x800000
CLSCTX_RESERVED6 :: 0x1000000
CLSCTX_ACTIVATE_ARM32_SERVER :: 0x2000000
CLSCTX_ALLOW_LOWER_TRUST_REGISTRATION :: 0x4000000
CLSCTX_PS_DLL :: 0x80000000
WSAPROTOCOLCHAIN :: struct {
ChainLen: c_int,