使用IProfAdmin接口c ++创建Outlook MAPI配置文件

时间:2016-01-24 21:11:44

标签: c++ outlook mapi

我对c ++的了解非常有限,但我尝试使用此示例代码以编程方式创建mapi配置文件:

https://support.microsoft.com/en-us/kb/306962

我编译了代码,但样本功能对我来说还不够,因为它只添加:ProfileName,MailboxName和Server,

我想添加RPC代理服务器(通过HTTP连接)以及此窗口的所有设置:

Proxy Server image

正如我在profiler.cpp代码中看到的那样,MailboxName和Server位于此部分:

// First, server name
ZeroMemory(&rgval[1], sizeof(SPropValue) );
rgval[1].ulPropTag = PR_PROFILE_UNRESOLVED_SERVER;
rgval[1].Value.lpszA = szServer;

// Next, the mailbox name
ZeroMemory(&rgval[0], sizeof(SPropValue) );
rgval[0].ulPropTag = PR_PROFILE_UNRESOLVED_NAME; 
rgval[0].Value.lpszA = szMailbox;

并且标签/属性位于EdkMdb.h文件中,因此我尝试添加以下行:

#define PR_PROFILE_RPC_PROXY_SERVER_FLAGS PROP_TAG( PT_LONG, pidProfileMin,0x2F)
#define PR_PROFILE_RPC_PROXY_SERVER_AUTH_PACKAGE (PT_LONG, pidProfileMin,0x1)
#define PR_PROFILE_RPC_PROXY_SERVER     PROP_TAG(PT_UNICODE, 0x6622001F)

扩展rgval数组

SPropValue      rgval[5];               // Property structure to hold values we want to set

然后将这些行添加到profiler.cpp

ZeroMemory(&rgval[2], sizeof(SPropValue));
rgval[2].ulPropTag = PR_PROFILE_RPC_PROXY_SERVER;
rgval[2].Value.lpszA = "mail.domain.com";

ZeroMemory(&rgval[3], sizeof(SPropValue));
rgval[3].ulPropTag = PR_PROFILE_RPC_PROXY_SERVER_FLAGS;
rgval[3].Value.ul = 0x1;

ZeroMemory(&rgval[4], sizeof(SPropValue));
rgval[4].ulPropTag = PR_PROFILE_RPC_PROXY_SERVER_AUTH_PACKAGE;
rgval[4].Value.ul = 0x2;

并将'属性数量更改为5'这里:

 if (FAILED(hRes = lpSvcAdmin->ConfigureMsgService(
        (LPMAPIUID)lpSvcRows->aRow->lpProps[iSvcUID].Value.bin.lpb, // Entry ID of service to configure
        NULL,                                                       // Handle to parent window
        0,                                                          // Flags
        5,                                                          // Number of properties we are setting
        rgval))) 

但没有效果,新配置文件中未配置代理设置,

我做错了什么或错过了什么?

我感谢任何帮助, 感谢

1 个答案:

答案 0 :(得分:0)

如果需要创建RPC-over-HTTP连接,则需要设置很多属性。见http://blogs.msdn.com/b/dvespa/archive/2014/01/17/how-create-outlook-profile-office-365.aspx

Outlook 2016中的事情要容易得多 - 您基本上只需提供SMTP地址:请参阅http://blogs.msdn.com/b/dvespa/archive/2015/10/29/how-to-configure-an-outlook-2016-profile-using-mfcmapi.aspx