Fixed windows.COINIT.MULTITHREADED declaration. It's supposed to be 0 rather than 3

This commit is contained in:
Dragos Popescu
2024-03-31 21:29:49 +03:00
parent 2bdf5f58ef
commit d0674cb70f

View File

@@ -3,9 +3,24 @@ package sys_windows
foreign import "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
/*
typedef enum tagCOINIT
{
COINIT_APARTMENTTHREADED = 0x2, // Apartment model
#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM
// These constants are only valid on Windows NT 4.0
COINIT_MULTITHREADED = COINITBASE_MULTITHREADED,
COINIT_DISABLE_OLE1DDE = 0x4, // Don't use DDE for Ole1 support.
COINIT_SPEED_OVER_MEMORY = 0x8, // Trade memory for speed.
#endif // DCOM
} COINIT;
*/
// Where COINITBASE_MULTITHREADED == 0x00
COINIT :: enum DWORD {
APARTMENTTHREADED = 0x2,
MULTITHREADED,
MULTITHREADED = 0,
DISABLE_OLE1DDE = 0x4,
SPEED_OVER_MEMORY = 0x8,
}