{"record":{"id":"00b0e79524e67e64","repo":"wailsapp/wails","slug":"coinitializeex-failed-with-e-invalidarg","errorCode":null,"errorMessage":"CoInitializeEx failed with E_INVALIDARG","messagePattern":"CoInitializeEx failed with E_INVALIDARG","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/pkg/w32/ole32.go","lineNumber":36,"sourceCode":"\n\tprocCoInitializeEx        = modole32.NewProc(\"CoInitializeEx\")\n\tprocCoInitialize          = modole32.NewProc(\"CoInitialize\")\n\tprocOleInitialize         = modole32.NewProc(\"OleInitialize\")\n\tprocCoUninitialize        = modole32.NewProc(\"CoUninitialize\")\n\tprocCoCreateInstance      = modole32.NewProc(\"CoCreateInstance\")\n\tprocCreateStreamOnHGlobal = modole32.NewProc(\"CreateStreamOnHGlobal\")\n\tprocRegisterDragDrop      = modole32.NewProc(\"RegisterDragDrop\")\n\tprocRevokeDragDrop        = modole32.NewProc(\"RevokeDragDrop\")\n)\n\nfunc CoInitializeEx(coInit uintptr) HRESULT {\n\tret, _, _ := procCoInitializeEx.Call(\n\t\t0,\n\t\tcoInit)\n\n\tswitch uint32(ret) {\n\tcase E_INVALIDARG:\n\t\tpanic(\"CoInitializeEx failed with E_INVALIDARG\")\n\tcase E_OUTOFMEMORY:\n\t\tpanic(\"CoInitializeEx failed with E_OUTOFMEMORY\")\n\tcase E_UNEXPECTED:\n\t\tpanic(\"CoInitializeEx failed with E_UNEXPECTED\")\n\t}\n\n\treturn HRESULT(ret)\n}\n\nfunc CoInitialize() {\n\tprocCoInitialize.Call(0)\n}\n\nfunc CoUninitialize() {\n\tprocCoUninitialize.Call()\n}\n\nfunc CoCreateInstance(clsid *syscall.GUID, dwClsContext uintptr, riid *syscall.GUID, ppv uintptr) HRESULT {","sourceCodeStart":18,"sourceCodeEnd":54,"githubUrl":"https://github.com/wailsapp/wails/blob/0e754b1b40ba9044c2a1460e23b7c3de20fc5cf3/v3/pkg/w32/ole32.go#L18-L54","documentation":"Error \"CoInitializeEx failed with E_INVALIDARG\" thrown in wailsapp/wails.","triggerScenarios":"Occurs when CoInitializeEx returns E_INVALIDARG, typically due to an invalid concurrency model flag passed for COM initialization.","commonSituations":"See trigger scenarios.","solutions":["Pass a valid concurrency model flag to CoInitializeEx: COINIT_APARTMENTTHREADED or COINIT_MULTITHREADED; any other value yields E_INVALIDARG.","Ensure the first argument (reserved) is always 0/nil as required by the API."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0e754b1b40ba9044c2a1460e23b7c3de20fc5cf3","analyzedAt":"2026-08-15T14:17:36.034Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}