Я пытаюсь определить подпись P/Invoke для следующего метода (определенный в propsys.h
)
PSSTDAPI PSRegisterPropertySchema(
__in PCWSTR pszPath);
Я видел на WinNT.h
это PCWSTR
псевдоним к LPCWSTR
как
typedef __nullterminated CONST WCHAR *LPCWSTR, *PCWSTR;
И PSSTDAPI
псевдоним для HRESULT
Таким образом, как должна быть подпись P/Invoke для PSRegisterPropertySchema
метод?
После установки значения CharSet
на CharSet.Unicode
все заработало.
[DllImport("Propsys.dll", CharSet=CharSet.Unicode)]
static internal extern int PSRegisterPropertySchema(String pszPath);
Без указания CharSet функция возвращала 0x80070057
, то есть E_INVALIDARG
.