c# - PInvoke SLAPI 函数

标签 c# pinvoke

我正在尝试使用 SLAPI 中的一些函数,但我对 PInvoke 还很陌生,我真的很难解决这个问题。以 SLGetPKeyInformation 为例:

HRESULT WINAPI SLGetPKeyInformation(
  _In_            HSLC       hSLC,
  _In_      const SLID       *pPKeyId,
  _In_            PCWSTR     pwszValueName,
  _Out_opt_       SLDATATYPE *peDataType,
  _Out_           UINT       *pcbValue,
  _Out_           PBYTE      *ppbValue
);

https://msdn.microsoft.com/en-us/library/windows/desktop/hh971173(v=vs.85).aspx

我不明白 HSLC 类型是什么,有人可以提供在 C# 中使用此函数的示例代码吗?

最佳答案

HSLC 在 slpublic.h 中定义为:

typedef PVOID HSLC;

因此它可以像 winapi 中的任何匿名句柄类型一样对待,并作为 IntPtr 在 C# 代码中传递。

关于c# - PInvoke SLAPI 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30609368/

相关文章:

c# - 在 native dll 中创建 C++ 类以在 C# 中使用

c# - 索引更改后启用和禁用组合框

c# - 序列不包含匹配元素 - EntityFramework

.net - pInvoke 和 COM Interop 之间有什么区别?

c# - 如何在 C# 中定义非托管 dll 依赖项

c# - 将结构传递给非托管代码时出现 System.AccessViolationException

c# - 将包含未知大小的 int 数组的结构从 c# 传递到 c 并返回

c# - 我不断收到此错误,无法修复它: error CS0161: 'Program.MathMinWhole(int, int)' : not all code paths return a value [duplicate]

c# - 服务器还原数据库失败

c# - 创建一个暂停的触发器