正在通过移动宽带连接到移动网络 API

Connecting to Mobile Network via Mobile Broadband API

我正在尝试通过调制解调器和 SIM 卡连接到移动网络。每次我尝试通过 SetProvisionedContext() 在上下文中设置 APN 字符串和用户凭据时,我都会得到 E_INVALIDARG HRESULT。 作为参数,我使用了 MBN_CONTEXT 的实例、&std::vector<wchar_t>[0] 形式的 wchar_t*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 中包含的代码示例。是否还有我不知道的其他信息来源? google 搜索未产生预期的结果。

最后我没有让它正常工作。我使用第二种方式连接到自定义 APN,即创建一个新的连接配置文件。为此,我使用了 XML 填充了我需要的值。

在此过程中,我遇到了另一个问题,其中包含我描述的不可预见的错误代码 here

此致,

斯蒂芬