2011-03-09 15 views
1

任何人都可以幫我翻譯COM IStemmer接口定義到C#或建議工具來做到這一點?我在Google和pinvoke.net上搜索,無法找到C#簽名。來自Windows搜索的IStemmer接口的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 
    ); 
} 

回答

0

您可以使用下面的接口

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