これが私がやろうとしていることです。リストの連絡先が Microsoft Communicator 2007 でステータスを変更したときに通知を受け取りたいです。Windows 7 で Delphi XE を実行しています。
フォーム作成で、コミュニケーター オブジェクトを作成し、連絡先リストを TListBox に読み込みました。CommunicatorAPI_TLB で、次のメソッドがあることがわかりました。
DMessengerEvents = dispinterface
...
procedure OnContactStatusChange (const pMContact: IDispatch; mStatus: MISTATUS); dispid 1030;
使いたいのはこれだと思います。これを自分のコードに統合するにはどうすればよいですか?
{ Create the communicator object, it's already up and running }
COMMUNICATOR := CoMessenger.Create;
{ Load my contacts into a listbox; do NOT use Hard Typecasts }
Contacts := COMMUNICATOR.MyContacts As IMessengerContacts;
For ContactIndex := 0 To (Contacts.Count - 1) Do Begin
Application.ProcessMessages;
Contact := (Contacts.Item (ContactIndex) As IMessengerContact);
{ Add the contact to the list }
lstContacts.AddItem (Contact.FriendlyName, Nil);
End; { For }