我正在尝试通过调制解调器和 SIM 卡连接到移动网络。每次我尝试在上下文中设置 APN 字符串和用户凭据时,SetProvisionedContext()
我都会得到E_INVALIDARG
HRESULT
. 作为参数,我使用了 的 Instance MBN_CONTEXT
、 awchar_t*
的形式&std::vector<wchar_t>[0]
和 a ULONG*
。
MBN_CONTEXT context;
std::vector<WCHAR> apnVector;
inParamAPN.GetCString(apnVector);
std::vector<WCHAR> userNameVec;
inParamUsername.GetCString(userNameVec);
std::vector<WCHAR> passwordVector;
inParamPassword.GetCString(passwordVector);
context.contextID = MBN_CONTEXT_ID_APPEND;
context.contextType = MBN_CONTEXT_TYPE_INTERNET;
context.accessString = &apnVector[0];
context.userName = &userNameVec[0];
context.password = &passwordVector[0];
context.compression = MBN_COMPRESSION_NONE;
context.authType = MBN_AUTH_PROTOCOL_PAP;
后来当我有IMbnConnectionContext
:
std::vector<WCHAR> providerVector;
InParamProvider.GetCString(providerVector);
ULONG requestID;
contextInterface->SetProvisionedContext(context, &providerVector[0], &requestID);
所以我的问题是:WinAPI 的哪个参数有问题,我该如何解决?
此外,任何其他信息来源的提示都适用。到目前为止,我只有官方MSDN和 Windows 7 SDK 中包含的代码示例。是否还有其他我不知道的信息来源?谷歌搜索没有产生预期的结果。