tags:

views:

143

answers:

1

I'm trying to define a P/Invoke signature for the following method (defined in propsys.h)

PSSTDAPI PSRegisterPropertySchema(
    __in PCWSTR pszPath);

I've seen on the WinNT.h that PCWSTR is an alias to LPCWSTR as

typedef __nullterminated CONST WCHAR *LPCWSTR, *PCWSTR;

And the PSSTDAPI is an alias for HRESULT

So how should be the P/Invoke signature for the PSRegisterPropertySchema method?

+1  A: 

After set the CharSet value to CharSet.Unicode it worked.

[DllImport("Propsys.dll", CharSet=CharSet.Unicode)]
static internal extern int PSRegisterPropertySchema(String pszPath);

Without specifing the CharSet the function was returning 0x80070057 which is E_INVALIDARG.

Carlos Loth