Windows 搜索中 IStemmer 接口的 C# 定义

发布于 2024-10-21 04:56:02 字数 690 浏览 5 评论 0原文

任何人都可以帮助我将 COM IStemmer 接口定义转换为 C# 或建议工具来执行此操作吗?我在 Google 和 pinvoke.net 上进行了搜索,但无法找到 C# 签名。

接口定义如下:

interface IStemmer {
    HRESULT GetLicenseToUse(
       [out]  WCHAR const **ppwcsLicense
    );  

    HRESULT Init(
       [in]   ULONG ulMaxTokenSize,
       [out]  BOOL pfLicense
    );

    HRESULT GenerateWordForms(
        [in]  WCHAR const *pwcInBuf,
        [in]  ULONG cwc,
        [in]  IWordFormSink *pWordFormSink
    );
}

interface IWordFormSink {
    HRESULT PutWord(
        [in]  const WCHAR *pwcInBuf ,
        [in]  ULONG cwc
    );

    HRESULT PutAltWord(
        [in]  const WCHAR *pwcInBuf ,
        [in]  ULONG cwc
    );
}

Can anyone help me with translating COM IStemmer interface definition to C# or suggest tool to do that? I searched in Google and at pinvoke.net and was unable to find C# signatures.

The interface definition is the following:

interface IStemmer {
    HRESULT GetLicenseToUse(
       [out]  WCHAR const **ppwcsLicense
    );  

    HRESULT Init(
       [in]   ULONG ulMaxTokenSize,
       [out]  BOOL pfLicense
    );

    HRESULT GenerateWordForms(
        [in]  WCHAR const *pwcInBuf,
        [in]  ULONG cwc,
        [in]  IWordFormSink *pWordFormSink
    );
}

interface IWordFormSink {
    HRESULT PutWord(
        [in]  const WCHAR *pwcInBuf ,
        [in]  ULONG cwc
    );

    HRESULT PutAltWord(
        [in]  const WCHAR *pwcInBuf ,
        [in]  ULONG cwc
    );
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盛夏已如深秋| 2024-10-28 04:56:02

您可以使用以下界面

[ComImport]
[Guid("EFBAF140-7F42-11CE-BE57-00AA0051FE20")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IStemmer
{
    void Init([MarshalAs(UnmanagedType.U4)] int ulMaxTokenSize, [MarshalAs(UnmanagedType.Bool)] out bool pfLicense);
    void GenerateWordForms([MarshalAs(UnmanagedType.LPWStr)] string pwcInBuf,
        [MarshalAs(UnmanagedType.U4)] int cwc,
        [MarshalAs(UnmanagedType.Interface)] IWordFormSink pStemSink);
    void GetLicenseToUse([MarshalAs(UnmanagedType.LPWStr)] out string ppwcsLicense);
}

you can use the following interface

[ComImport]
[Guid("EFBAF140-7F42-11CE-BE57-00AA0051FE20")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IStemmer
{
    void Init([MarshalAs(UnmanagedType.U4)] int ulMaxTokenSize, [MarshalAs(UnmanagedType.Bool)] out bool pfLicense);
    void GenerateWordForms([MarshalAs(UnmanagedType.LPWStr)] string pwcInBuf,
        [MarshalAs(UnmanagedType.U4)] int cwc,
        [MarshalAs(UnmanagedType.Interface)] IWordFormSink pStemSink);
    void GetLicenseToUse([MarshalAs(UnmanagedType.LPWStr)] out string ppwcsLicense);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文