Marc Fisher
Posts: 11
Joined: 2005-05-21
|
Hi
I would like to query the Recipients table at the point of sending a message but I am having some difficulties and would like to ask some guidance.
Here is my code:
procedure TAddInModule.DoItemSend(Sender: TObject; var Item,
Cancel: OleVariant);
var
IDsp: IDispatch;
RecipientTable: IMapiTable;
Msg: IMessage;
iCount:cardinal;
begin
RecipientTable:=nil;
IDsp := Item;
if Assigned(IDsp) then
try
IDsp.QueryInterface(IID__MAILITEM, msg);
if Assigned(msg) then
begin
if msg.GetRecipientTable(0, RecipientTable ) = S_OK then
begin
if RecipientTable<>nil then
begin
try
RecipientTable.GetRowCount(0, iCount );
ShowMessage( format( 'row count: %d', [iCount] ));
except
ShowMessage( 'GetRowCount failed');
end;
end
else ShowMessage( 'RecipientTable is nil');
end;
end;
finally
end;
end;
RecipientTable is always nil but I don't know why as it is difficult to debug from Delphi.
Any help would be appreciated.
Delphi6 on W2k, Office2k3, OL2k3
Best regards
|
|
Dmitry Kostochko
Add-in Express team
Posts: 2880
Joined: 2004-04-05
|
Hi Marc,
IDsp.QueryInterface(IID__MAILITEM, msg);
I think there is a bug here. You are trying to get the Extended MAPI interface but indicate IID__MailItem which is an Outlook Object Model interface. I think you will have to use the MAPIObject property of the _MailItem interface.
Please note that we provide solutions for Extended MAPI for Premium Subscribers only.
|
|