https://bugs.winehq.org/show_bug.cgi?id=38756
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.gamershell.com/n |https://web.archive.org/web |ews_116756.html |/20190318134120/http://ftp. | |airnet.ne.jp/pub/pc/forest/ | |p/pcmark/10493/PCMark_7_v10 | |4_installer.zip Component|-unknown |ole32
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting, still present.
Adding stable link to snapshot via Internet archive.
https://web.archive.org/web/20190318134120/http://ftp.airnet.ne.jp/pub/pc/fo...
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Futuremark/Futuremark SystemInfo
$ WINEDEBUG=+seh,+relay,+ole,+variant wine ./FMSIDiag.exe >>log.txt 2>&1 ... 004b:Call ole32.CoGetObject(01050ff8 L"new:{f9c82199-b002-41b4-8b00-0f1eca89425f}",05b2e31c,05b2e398,05b2e314) ret=05052408 004b:trace:ole:CreateBindCtx (0,0x5b2e244) 004b:Call ntdll.RtlAllocateHeap(00110000,00000000,00000034) ret=7e24277c 004b:Ret ntdll.RtlAllocateHeap() retval=0588a8e8 ret=7e24277c 004b:trace:ole:BindCtxImpl_Construct (0x588a8e8) 004b:Call KERNEL32.GetThreadLocale() ret=7e242670 004b:Ret KERNEL32.GetThreadLocale() retval=00000409 ret=7e242670 004b:trace:ole:BindCtxImpl_QueryInterface (0x588a8e8 {0000000e-0000-0000-c000-000000000046} 0x5b2e244) 004b:trace:ole:BindCtxImpl_AddRef (0x588a8e8) 004b:trace:ole:BindCtxImpl_SetBindOptions (0x588a8e8,0x5b2e31c) 004b:warn:ole:BindCtxImpl_SetBindOptions invalid size 004b:trace:ole:BindCtxImpl_Release (0x588a8e8) 004b:trace:ole:BindCtxImpl_ReleaseBoundObjects (0x588a8e8) 004b:trace:ole:BindCtxImpl_Destroy (0x588a8e8) 004b:Call ntdll.RtlFreeHeap(00110000,00000000,00000000) ret=7e2416ad 004b:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7e2416ad 004b:Call ntdll.RtlFreeHeap(00110000,00000000,0588a8e8) ret=7e2416cd 004b:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7e2416cd 004b:Ret ole32.CoGetObject() retval=80070057 ret=05052408 ... --- snip ---
Also interesting (Delphi based test app source snippet):
http://elists.org/pipermail/delphi/2006-May/028508.html
--- quote --- Hello,
I wonder whether anybody already managed to run an elevated instance of a COM object as mentioned in msdn article below, paragraph "Shield Implementation and APIs"?
http://msdn.microsoft.com/windowsvista/default.aspx?pull=/library/en-us/dnlo...
CoCreateInstanceAsAdmin() is described here:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/html/15...
I get it working only when I'm logged in as Admin and the 'consent prompt' pops up. As a limited User the Elevation UI (login prompt) is displayed, login succeeds, however my method ShowMessage() isn't shown/executed, why?? Since I'm not familar with COM I may miss something simple, any help is appreciated.
Arno Garrels
///////////////////////////////////////
uses Windows, Sysutils, ActiveX;
type PBindOpts3 = ^TBindOpts3; {$EXTERNALSYM tagBIND_OPTS3} tagBIND_OPTS3 = record cbStruct: DWORD; grfFlags: DWORD; grfMode: DWORD; dwTickCountDeadline: DWORD; dwTrackFlags: DWORD; dwClassContext: DWORD; locale: LCID; pServerInfo: Pointer; //DUMMY!! //COSERVERINFO * ; hwnd: HWND; end; TBindOpts3 = tagBIND_OPTS3; {$EXTERNALSYM BIND_OPTS3} BIND_OPTS3 = TBindOpts3;
function CoCreateInstanceAsAdmin(WndHandle: HWND; clsid: TCLSID; iid: TIID; out ppv): HRESULT;
implementation
function NewCoGetObject(pazName: PWideChar; pBindOptions: PBindOpts3; const iid: TIID; out ppv): HResult; stdcall; external 'ole32.dll' name 'CoGetObject';
function CoCreateInstanceAsAdmin(WndHandle: HWND; clsid: TCLSID; iid: TIID; out ppv): HRESULT; var Bo : TBindOpts3; Moniker : PWideChar; begin Moniker := PWideChar(WideString('Elevation:Administrator!new:' + GuidToString(clsid))); FillChar(Bo, SizeOf(Bo), #0); Bo.hwnd := WndHandle; Bo.cbStruct := SizeOf(Bo); Bo.dwClassContext := CLSCTX_LOCAL_SERVER; Result := NewCoGetObject(Moniker, @Bo, iid, ppv); end; ////////////////////////////////////////////////
procedure TForm1.Button1Click(Sender: TObject); var MyComObj : IDisplaySomething; begin OleCheck(CoCreateInstanceAsAdmin(Self.Handle, Class_DisplaySomething, IDisplaySomething, MyComObj)); MyComObj.Display('OK!'); end; --- quote ---
$ sha1sum PCMark_7_v104_installer.zip d3620c2b336dbffa5a93c381fe03f252a874416a6 PCMark_7_v104_installer.zip
$ du -sh PCMark_7_v104_installer.zip 304M PCMark_7_v104_installer.zip
$ wine --version wine-4.4
Regards