WinHttpOpenRequest第6个参数MSDN的解释如下:
ppwszAcceptTypes [in]Pointer to a null-terminated array of string pointers that specifies media types accepted by the client. If this parameter is set to WINHTTP_DEFAULT_ACCEPT_TYPES, no types are accepted by the client. Typically, servers handle a lack of accepted types as indication that the client accepts only documents of type "text/*"; that is, only text documents—no pictures or other binary files. For a list of valid media types, see Media Types defined by IANA at http://www.iana.org/assignments/media-types/.
参考地址: https://msdn.microsoft.com/en-us/library/windows/desktop/aa384099(v=vs.85).aspx---------------------------------------------------------------------------------------------------------------------------------------------------
网上的例子,第6个参数一般传:WINHTTP_DEFAULT_ACCEPT_TYPES,官方的例子也是一样。。。
--------------------------------------------------------------------------------------------------------
第6个参数的类型是LPCWSTR*,即WCHAR**,即是指向字符串的指针数组。
明白其是一个字符串指针数组,数组中的元素是WCHAR*,那么我们就可以这样传参数了:
LPCWSTR ppwszAcceptTypes[3]; // 创建一个WCHAR*指针数据
WCHAR szTmpW[3][32] = {0}; // 字符串数据
wcscpy(szTmpW[0], L"接收类型1");
wcscpy(szTmpW[1], L"接收类型2");
ppwszAcceptTypes[0] = szTmpW[0];
ppwszAcceptTypes[1] = szTmpW[1];
ppwszAcceptTypes[2] = NULL; // 最后一个指针元素必须是NULL,不然判断不了结束位置哈
WinHttpOpenRequest((HINTERNET)222, L"WWW哦", L"呜呜呜", L"OK", L"RRR", ppwszAcceptTypes, 77);
---------------------------------------------------------------------------------------------------
参数传完了,如何解析呢?代码如下:
// 这个需要特别对待呀
LPCWSTR *pAcceptType = ppwszAcceptTypes;
int iIndex = 0;
while(pAcceptType != NULL )
{
if (pAcceptType[iIndex] == NULL)
{
break;
}
WCHAR* pTmp = pAcceptType[iIndex];
}