LPOLESTR* to string
John Colvin
john.loughran.colvin at gmail.com
Mon Feb 10 09:29:32 PST 2014
On Monday, 10 February 2014 at 17:08:27 UTC, Andre wrote:
> Am 10.02.2014 17:53, schrieb Mike Parker:
>> On 2/11/2014 1:32 AM, Andre wrote:
>>> Hi,
>>>
>>> one hour trying to get a string out of LPOLESTR*.
>>> What is the correct command to get rgszNames as string?
>>>
>>> HRESULT GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT
>>> cNames,
>>> LCID lcid, DISPID* rgDispId){}
>>>
>>> With following command I only get the first character
>>> writeln(to!string(**rgszNames));
>>>
>>> Kind regards
>>> André
>>
>> I would assume to!string(*rgszNames). Assuming LPOLESTR is
>> char* or some
>> such, then LPOLESTR** is char**, so **LPOLESTR would be the
>> first
>> character in the string, and *LPOLESTR would be the char*
>> string.
>
>
> to!string(*rgszNames) outputs a number instead of a name.
> I think I am a step further, rgszNames is an array but also
> with to!string(*rgszNames[0]) only the first character of my
> method is given back.
>
> Kind regards
> André
std.conv.to knows about char* c-style strings, but not wchar*
c-style strings like LPOLESTR. The number you are getting is the
pointer to the first wchar.
I'm not sure what is the best way to do this as it's not
something I've come across before, hopefully someone else will
know.
More information about the Digitalmars-d-learn
mailing list