我对c ++的了解非常有限,但我尝试使用此示例代码以编程方式创建mapi配置文件:
https://support.microsoft.com/en-us/kb/306962
我编译了代码,但样本功能对我来说还不够,因为它只添加:ProfileName,MailboxName和Server,
我想添加RPC代理服务器(通过HTTP连接)以及此窗口的所有设置:
正如我在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)))
但没有效果,新配置文件中未配置代理设置,
我做错了什么或错过了什么?
我感谢任何帮助, 感谢
答案 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