• Home
  • Forum
[레벨:9]운영자 (*.227.77.236) 2010-07-26 18:05 조회 수 12841 댓글 수 0 추천 수 0
#include <windows.h>
#define INITGUID
#include <initguid.h>
#include <exdisp.h>
#include <memory.h>

HRESULT GetPostData(LPVARIANT pvPostData);

void main()
{
HRESULT hr;
IWebBrowserApp* pWBApp = NULL; // Derived from IWebBrowser
BSTR bstrURL = NULL, bstrHeaders = NULL;
VARIANT vFlags = {0},
vTargetFrameName = {0},
vPostData = {0},
vHeaders = {0};

if (FAILED(hr = CoInitialize(NULL)))
{
return;
}

if (FAILED(hr = CoCreateInstance(CLSID_InternetExplorer,
NULL,
CLSCTX_SERVER,
IID_IWebBrowserApp,
(LPVOID*)&pWBApp)))
{
goto Error;
}

bstrURL = SysAllocString(L"http://<server>/scripts/navpost.asp" );
if (!bstrURL)
{
goto Error;
}

bstrHeaders = SysAllocString(
L"Content-Type: application/x-www-form-urlencoded\r\n" );
if (!bstrHeaders)
{
goto Error;
}

V_VT(&vHeaders) = VT_BSTR;
V_BSTR(&vHeaders) = bstrHeaders;

hr = GetPostData(&vPostData);
hr = pWBApp->Navigate(bstrURL, &vFlags,
&vTargetFrameName, &vPostData, &vHeaders);
pWBApp->put_Visible(VARIANT_TRUE);

Error:
if (bstrURL) SysFreeString(bstrURL);
if (bstrHeaders) SysFreeString(bstrHeaders);
VariantClear(&vPostData);
if (pWBApp) pWBApp->Release();
CoUninitialize();
}

// Pack some data into a SAFEARRAY of BYTEs. Return in a VARIANT
HRESULT GetPostData(LPVARIANT pvPostData)
{
HRESULT hr;
LPSAFEARRAY psa;
LPCTSTR cszPostData = "FName=Matt&Flavor=Mocha+Chip";
UINT cElems = lstrlen(cszPostData);
LPSTR pPostData;

if (!pvPostData)
{
return E_POINTER;
}

VariantInit(pvPostData);

psa = SafeArrayCreateVector(VT_UI1, 0, cElems);
if (!psa)
{
return E_OUTOFMEMORY;
}

hr = SafeArrayAccessData(psa, (LPVOID*)&pPostData);
memcpy(pPostData, cszPostData, cElems);
hr = SafeArrayUnaccessData(psa);

V_VT(pvPostData) = VT_ARRAY l VT_UI1;
V_ARRAY(pvPostData) = psa;
return NOERROR;
}
문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수 추천 수
공지 라이브툴즈 서비스오픈 안내 file [레벨:9]운영자 2011-12-12 18870  
182 ANSI 문자열에서 유니코드로의 변환 방법 [레벨:9]운영자 2010-10-04 11977
181 [해결법] error C2065: 'wsprintfW_instead_use_StringCbPrintfW_or_StringCchPrintfW' : undeclared identifier [레벨:9]운영자 2010-09-20 11491
180 [해결법] error C2065: 'strcpy_instead_use_StringCbCopyA_or_StringCchCopyA' : undeclared identifier [레벨:9]운영자 2010-08-30 11414
179 POST 방식으로 웹에 데이터 전송 후 페이지 내용 얻기(VC6.0버전) file [레벨:9]운영자 2010-07-28 12056
178 POST 방식으로 데이터 전송 [레벨:9]운영자 2010-07-28 11945
177 CString → BSTR 변환 [레벨:9]운영자 2010-07-26 16341
» POST 방식으로 쿼리(DATA) 전송 [레벨:9]운영자 2010-07-26 12841
175 uuid.lib(ocidl_i.obj) : fatal error LNK1103: debugging information corrupt; recompile module 해결책 [레벨:9]운영자 2010-07-26 19640
174 바탕화면 경로얻기 [레벨:9]운영자 2010-07-20 22093
173 URL Encode / Decode [레벨:9]운영자 2010-07-05 19424


XE Login