7,655
社区成员
发帖
与我相关
我的任务
分享
RECT rectClient;
GetClientRect(&rectClient);
CoInitializeEx(NULL, COINIT_MULTITHREADED);
// create browser control
BOOL ret = m_browser.CreateControl(CLSID_WebBrowser,
NULL,
WS_VISIBLE | WS_BORDER | WS_CHILD,
rectClient,
this,
AFX_IDW_PANE_FIRST);
LPUNKNOWN lpunk = m_browser.GetControlUnknown();
HRESULT hr = lpunk->QueryInterface(IID_IWebBrowser2,(void**)&m_pBrowser);
BSTR url = SysAllocString(L"http://localhost/");
// post data
VARIANT vPostData = {0};
LPSAFEARRAY psa;
char* postData = "username=name&password=word";
UINT num = strlen(postData);
VariantInit(&vPostData);
psa = SafeArrayCreateVector(VT_UI1, 0, num);
char* pPostData = NULL ;
hr = SafeArrayAccessData(psa, (LPVOID*)&pPostData);
memcpy(pPostData, postData, num);
hr = SafeArrayUnaccessData(psa);
V_VT(&vPostData) = VT_ARRAY | VT_UI1;
V_ARRAY(&vPostData) = psa;
//headers
VARIANT vHeader = {0};
VariantInit(&vHeader);
BSTR bstrHeaders = SysAllocString(
L"Content-Type: application/x-www-form-urlencoded\r\n");
V_VT(&vHeader) = VT_BSTR;
V_BSTR(&vHeader) = bstrHeaders;
m_pBrowser->put_Visible(VARIANT_TRUE);
m_pBrowser->put_AddressBar(VARIANT_TRUE);
m_pBrowser->put_StatusBar(VARIANT_TRUE);
VARIANT vUrl ={0};
VariantInit(&vUrl);
V_VT(&vUrl) = VT_BSTR;
V_BSTR(&vUrl)= url;
hr = m_pBrowser->Navigate2(&vUrl,NULL,NULL,&vPostData,&vHeader);