|
procedure TForm1.Button1Click(Sender: TObject);
var
m_Outlook : IPOutlookApp;
pFolder : IFolder;
ipItemCollection : IPOutlookItemCollection;
pContact : IContact;
hr : HRESULT;
ss,ss2,ss3,ss1 : bstr;
ContactCount,i : longint;
begin
CoInitializeEx(nil,0);
hr := CoCreateInstance(CLSID_Application,nil,CLSCTX_INPROC_SERVER,
IID_IPOutlookApp,m_Outlook);
m_Outlook.Logon(0);
m_outlook.get_Version(ss);
edit1.text := ss;
edit2.text := '1';
m_Outlook.GetDefaultFolder(10,pFolder);
pfolder.get_Items(ipItemCollection);
ipItemCollection.get_Count(@ContactCount);
memo1.Lines.add(inttostr(ContactCount));
for i := 1 to ContactCount do
begin
ipItemCollection.Item(i,idispatch(pContact));
pcontact.get_FirstName(ss1);
pcontact.get_MiddleName(ss2);
pcontact.get_LastName(ss3);
pcontact.get_Title(ss);
memo1.lines.add(inttostr(i));
memo1.lines.add(WideCharToString(ss)+'_'+WideCharToString(ss1)+'_'+WideCharToString(ss2)+'_'+WideCharToString(ss3));
pcontact := nil;
end;
m_Outlook.Logoff();
edit2.text := '2';
ipItemCollection := nil;
pFolder := nil;
m_Outlook := nil;
edit2.text := '3';
CoUninitialize;
edit2.text := '4';
end;
以上代码在wm6.5平台下,只能显示英文联系人,凡有中文的都显示空白,哪位兄弟有处理过类似的问题帮忙解释下. |
|