_IContactsAndGroupsCallback.OnLookUp我想按照http://msdn.microsoft.com/en-US/library/office/jj900715.aspx#off15_IMIntegration_ImplementRequired_ILyncClient的指南提供IM状态等。办公室。响应IContactManager.Lookup(string_lookupString,object_contactsAndGroupsCallback=null,object_state=Type.Missing)我需要调用Microsoft.Office.Uc._IContactsAndGroupsCallback.OnLookup(ContactManager_source,object_lookupResult,AsynchronousOperation_asyncOperation);第二个参数不详细)备案:当Office无法确定联系人的SIP地址时,它会调用IContactManager.Lookup方法使用IM服务查找SIP。Office在此处传递它可以为联系人找到的最佳数据(例如,仅联系人的电子邮件地址)。Lookup方法异步返回一个AsynchronousOperation对象。当它调用回调时,除了联系人的URI之外,Lookup方法还应返回操作的成功或失败。我尝试将不同的结果作为lookupResult(uristring,.NETUriobject,Contactobject)传递,但没有成功。请求的lookupResult类型是什么?最后我可以修复它。参数是:[ClassInterface(ClassInterfaceType.None)][ComSourceInterfaces(typeof(_IContactManagerEvents))][ComVisible(true)]publicclassMyContactManager:ContactManager{//省略了其他实现细节。}[ClassInterface(ClassInterfaceType.None)][ComVisible(true)][ComSourceInterfaces(typeof(_IContactEvents))]publicclassMyOfficeContact:Contact{//省略了其他实现细节。}[ComVisible(true)][ClassInterface(ClassInterfaceType.None)]publicclassMyAsyncOperation:AsynchronousOperation{//省略了其他实现细节。}提示:在将IM应用程序与Office集成时,您应该实现一个简单的Office仿真并调用您自己的IM应用程序接口。这将有助于发现事件处理等方面的任何问题。以上就是C#学习教程的全部内容:_IContactsAndGroupsCallback.OnLookUp。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——[ComImport,Guid(MyImApp.ClassId)]publicclassMyImApp{internalconststringClassId="";}公共类MyContactAndGroupsCallback:_IContactsAndGroupsCallback{publicvoidOnAddCustomGroup(ContactManager_source,AsynchronousOperation_asyncOperation){}publicvoidOnAddDistributionGroup(ContactManager_source,AsynchronousOperation_asyncOperation){}publicvoidOnLookup(ContactManager_source,object_lookupResult,AsynchronousOperation_asyncOperation){}publicvoidOnLookup(ContactManager_source,object_lookupResult,AsynchronousOperation_asyncOperationContactManager_source,AsynchronousOperation_asyncOperation){}publicvoidOnRemoveGroup(ContactManager_source,AsynchronousOperation_asyncOperation){}publicvoidOnSearch(ContactManager_source,SearchResults_searchResults,AsynchronousOperation_asyncOperation){}}类程序{staticboolcancelPressed=false;静态MyContactAndGroupsCallbackmyContactsAndGroupsCallback=newMyContactAndGroupsCallback();staticvoidMain(string[]args){MyImAppimApp=newMyImApp();如果(imApp==null)返回;UCOfficeIntegrationofficeIntegration=(UCOfficeIntegration)imApp;如果(officeIntegration==null)返回;officeIntegration.OnShuttingDown+=officeIntegration_OnShuttingDown;字符串officeVersion="15.0.0.0";字符串authInfo=officeIntegration.GetAuthenticationInfo(officeVersion);OIFeaturesupportedFeatures=officeIntegration.GetSupportedFeatures(officeVersion);//skype报告:-122LyncClientlyncClient=(LyncClient)officeIntegration.GetInterface(officeVersion,OIInterface.oiInterfaceILyncClient);如果(lyncClient==null)返回;字符串uri=lyncClient.Uri;IAutomation自动化=(IAutomation)officeIntegration.GetInterface(officeVersion,OIInterface.oiInterfaceIAutomation);//LyncClientCapabilityTypescapabilities=lyncClient.Capabilities;//skype:未实现edlyncClient.OnStateChanged+=lyncClient_OnStateChanged;联系人管理器contactManager=lyncClient.ContactManager;如果(contactManager==null)返回;AsynchronousOperationasync=contactManager.Lookup("test@test.com",myContactsAndGroupsCallback,Type.Missing);联系人contact=contactManager.GetContactByUri("test@test.com");如果(联系人!=null){动态结果=contact.GetContactInformation(ContactInformationType.ucPresenceInstantMessageAddresses);ContactSettingDictionary设置=contact.Settings;ContactSetting[]keys=settings.Keys;if(keys!=null){foreach(ContactSettingkeyinkeys){objectvalue=null;settings.TryGetValue(key,outvalue);}}}Console.CancelKeyPress+=Console_CancelKeyPress;Console.WriteLine("按Ctrl-C退出");做{System.Threading.Thread.Sleep(1000);}while(!cancelPressed);}staticvoidofficeIntegration_OnShuttingDown(){Console.WriteLine("IM应用程序正在关闭");}静态无效contactManager_OnSearchProviderStateChanged(ContactManager_eventSource,SearchProviderStateChangedEventData_eventData){}staticvoidConsole_CancelKeyPress(对象发送者,ConsoleCancelEventArgse){cancelPressed=true;}staticvoidlyncClient_OnStateChanged(Client_eventSource,ClientStateChangedEventData_eventData){Console.WriteLine("状态改变:{0}->{1},{2}",_eventData.OldState,_eventData.NewState,_eventData.StatusCode);}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
