我传入了一个字符串的URL强制转换成LPCOLESTR型的,想把历史记录里的这个URL删除掉,可是却是失败,错误代码是87-The parameter is incorrect.
    我该怎么传?

解决方案 »

  1.   

    you have to pass unicode string
    HRESULT __fastcall AnsiToUnicode(LPCSTR pszA, LPOLESTR* ppszW)
    {
        ULONG cCharacters;
        DWORD dwError;
        if (NULL == pszA)
        {
            *ppszW = NULL;
            return NOERROR;
        }
        cCharacters =  strlen(pszA)+1;
        *ppszW = (LPOLESTR) CoTaskMemAlloc(cCharacters*2);
        if (NULL == *ppszW)
            return E_OUTOFMEMORY;
        if (0 == MultiByteToWideChar(CP_ACP, 0, pszA, cCharacters,*ppszW, cCharacters))
        {
            dwError = GetLastError();
            CoTaskMemFree(*ppszW);
            *ppszW = NULL;
            return HRESULT_FROM_WIN32(dwError);
        }    return NOERROR;
    }
    LPOLESTR bstr_dst_bmp;
    AnsiToUnicode(argv[1],&bstr_dst_bmp);