一点说明:
创建捆绑环境。可以利用ActiveX API提供的CreatAsyncBindCtx()函数。该调用要求为应用程序的IBindStatusCallback函数提供一个指针。没有该接口,系统和传输就没办法与应用程序进行通信。如果应用程序需要实现特殊功能,如MIME,那么你还需要给可选的IEnumFormatETC接口提供一个指针。格式枚举器允许服务器和传输确定应用程序能处理什么数据格式(它们总假定应用程序能处理文本数据)。代码如下:
   //创建Moniker  m_pmk
    hr = CreateURLMoniker(NULL, wszUrl, &m_pmk);
    if (FAILED(hr))
        goto Error;    //绑定环境,通过向绑定环境注册一个回调接口,
    //我们可以控制URL传输的过程,并得到反馈信息。
    hr = CreateBindCtx(0, &m_pbc);
   if (FAILED(hr))
        goto Error;    //如何告诉 moniker的MIME类型????   ///向绑定环境注册一个回调接口IBindStatusCallback
    hr = RegisterBindStatusCallback(m_pbc,
            m_pbsc,
            0,
            0L);
    if (FAILED(hr))
{
        goto Error;
}
    //执行绑定,启动实际的URL访问及数据传输过程。
    hr = m_pmk->BindToStorage(m_pbc, 0, IID_IStream, (void**)&pstm);
    if (FAILED(hr))
        goto Error;问题:如何编写告诉 moniker的MIME类型的代码?

解决方案 »

  1.   

    如果你想提供另外的处理信息,就要指定pIBindCtx值。例如,如果你的应用程序提供MIME 功能,就可能利用该参数传递IEnumFormatETC接口的位置(它是作为IBindCtx参数的一部分传递的,但是,不要给IEnumFormatETC接口本身传递指针)。如果在传送中需要状态信息,那么,还要给应用程序的IBindStatusCallback接口传递一个指针。
      

  2.   

    hr = CreateBindCtx(0, &m_pbc); 
    也就是说 m_pbc这个参数如何赋值
      

  3.   

    //告诉 moniker的MIME类型
    WCHAR szMon[] = L"@device:*:{860BB310-5D01-11d0-BD3B-00A0C911CE86}";
    ULONG chEaten = 0;
    hr = MkParseDisplayName(m_pbc, szMon, &chEaten, &m_pmk);请问:base64的MIME类型是多少?也就是上面的WCHAR szMon[] 如果表示 base64的UUID该如何去写?