2009/1/1 Michael Karcher wine@mkarcher.dialup.fu-berlin.de:
Am Donnerstag, den 01.01.2009, 19:09 +0000 schrieb Rob Shearman:
2009/1/1 Michael Karcher wine@mkarcher.dialup.fu-berlin.de:
- [call_as(AddPropertySheetPages)]
- HRESULT RemoteAddPropertySheetPages();
[...]
- [call_as(SendControlMsg)]
- HRESULT RemoteSendControlMsg();
[...]
- [call_as(SetToolbarItems)]
- HRESULT RemoteSetToolbarItems();
These shouldn't be necessary. What is it that you're trying to fix?
Widl outputting vtable slot number mismatch errors when a local function is present without a remote function being present also. But if I might take a guess from my last experiences here: This is a widl bug that should be fixed...
I'm afraid so.
- HRESULT GetDropDownStatus(
- [local] HRESULT GetDropDownStatus( [out] DWORD *pdwFlags,
[out, string] LPWSTR *ppwszString);
[out] LPWSTR *ppwszString);
- [call_as(GetDropDownStatus)]
- HRESULT RemoteGetDropDownStatus();
This isn't correct. IAutoCompleteDropDown::GetDropDownStatus should be remoted as is.
How does that work? ppwszString is a NULL-pointer-terminated array of strings.
MSDN says that this function actually just returns one string, not a NULL-pointer-terminated array of strings, so this should just work.
Does the [string] flag work for pointer arrays too? MSDN doesn't say so.
No, the [string] attribute in this case in redundant and it should apply to the first pointer in the parameter. I'm guessing by the change that you had to make that widl doesn't handle this too well...