2010-07-20 46 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再也不会打扰我了。

谢谢