2010-07-20 115 views
0

我試圖在服務器上使用MS IME來檢索Silverlight應用程序中的某些日語信息。應用程序通過使用WCF訪問服務器,但是當調用CoCreateInstance創建IFELanguage2時,它會給我-2147467262。我在服務器上使用的相同代碼實際上在WPF應用程序上工作得很好。無法在服務器端創建COM組件實例

下面是代碼,

// ...omit 
Guid imeGuid; 
int errCode = Ole32.CLSIDFromString("MSIME.Japan", out imeGuid); 
WinBase.CheckError(errCode); 

Guid feLangIID = new Guid(Constants.IID_IFELanguage2); 
IntPtr ppv; 
errCode = Ole32.CoCreateInstance(imeGuid, IntPtr.Zero, Ole32.CLSCTX.CLSCTX_ALL, feLangIID, out ppv); 
WinBase.CheckError(errCode); // errCode is 2147467262 
IFELanguage IfeLanguage = Marshal.GetTypedObjectForIUnknown(ppv, typeof(IFELanguage)) as IFELanguage; 

errCode = IfeLanguage.Open(); 
WinBase.CheckError(errCode); 
// ...omit 

我需要設置任何使用MS IME在服務器端?我跑在以下環境中的應用,
IIS7
的.NET Framework 4.0
的Windows 7專業版64位
VS2010

由於提前,
yokyo

回答

0

一個谷歌搜索後半一天,我有點進一步點。我的問題是調用com作爲MTA,因此在更改爲使STA線程調用com之後,CoCreateInstance再也不會打擾我了。

謝謝

相關問題