Определение C # для интерфейса IStemmer из Windows Search - PullRequest
1 голос
/ 09 марта 2011

Может кто-нибудь помочь мне с переводом определения интерфейса 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
    );
}

1 Ответ

0 голосов
/ 09 апреля 2013

вы можете использовать следующий интерфейс

[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);
}
...