我正在尝试为以下方法定义P / Invoke签名(在propsys.h
中定义)
PSSTDAPI PSRegisterPropertySchema(
__in PCWSTR pszPath);
我在WinNT.h
上看到PCWSTR
是LPCWSTR
的别名
typedef __nullterminated CONST WCHAR *LPCWSTR, *PCWSTR;
PSSTDAPI
是HRESULT
那么PSRegisterPropertySchema
方法的P / Invoke签名应该如何?
答案 0 :(得分:8)
将CharSet
值设置为CharSet.Unicode
后,确实有效。
[DllImport("Propsys.dll", CharSet=CharSet.Unicode)]
static internal extern int PSRegisterPropertySchema(String pszPath);
如果没有指定CharSet,则函数返回0x80070057
E_INVALIDARG
。