掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WebBrowserでPostDataを送信するには? (ID:54157)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
以下のように変更したら、PostDataを送ることができました。 #include <atlbase.h> // COM コンポーネント利用をインクルード char cHeader[100] = "Content-Type: application/x-www-form-urlencoded\n\r"; char cPost[128] = "year=2004&mon=07"; char cUrl[128] = "http://172.26.82.60/owss/wmwa0022.asp"; CString URLStr = &cUrl[0]; CString headerStr = &cHeader[0]; CComVariant vempty; CComVariant vUrl(URLStr); CComVariant vHeader(headerStr); // URLとHEADERのVariantを作成 <--- // POSTDATAのSafearray/Variant作成 ---> // Safearray作成 HRESULT hr; int postDataLen = strlen ( cPost ); void* pArrayData = NULL; SAFEARRAYBOUND rgsabound[1]; // 作成するSAFEARRAYの要素数 rgsabound[0].cElements = postDataLen; // 作成するSAFEARRAYの添字の下限値 = 0 rgsabound[0].lLbound = 0; // SAFEARRAY作成 if ( (m_psa=SafeArrayCreate(VT_UI1,1,rgsabound)) == NULL ) return FALSE; // 作成したSAFEARRAYのポインタ取得及びロック if ( (hr=SafeArrayAccessData(m_psa,&pArrayData)) != S_OK ) return FALSE; // POSTDATAをSAFEARRAYにコピー memcpy ( pArrayData, (void*)cPost, postDataLen ); // Variant作成 VARIANT pName; VariantInit ( &pName ); pName.vt = VT_ARRAY; pName.parray = m_psa; // SAFEARRAYアンロック if ( (hr=SafeArrayUnaccessData(m_psa)) != S_OK ) return FALSE; // POSTDATAのSafearray/Variant作成 <--- CLSID cid; IUnknown *pUnknown = NULL; IWebBrowser2 *pBrowser = NULL; // COM コンポーネント利用開始(のための初期化) OleInitialize ( NULL ); // IE コンポーネントのクラス識別子(UUID)を探す hr = CLSIDFromProgID ( L"InternetExplorer.Application", &cid ); // すべてのCOMが実装する最小限のIUnknown インタフェースを取得 hr = CoCreateInstance ( cid, NULL, CLSCTX_ALL, IID_IUnknown, (void **)&pUnknown ); // 更に実装しているインタフェース(IWebBrowser2)を探す hr = pUnknown->QueryInterface ( IID_IWebBrowser2, (void **)&pBrowser ); // IE コンポーネントを表示させる //pBrowser->put_Visible ( TRUE ); // URLへ移動 m_explorer.Navigate2 ( &vUrl, &vempty, &vempty, &pName, &vHeader ); // SAFEARRAYの削除 SafeArrayDestroy ( m_psa ); m_psa = NULL; // オブジェクトの開放(参照カウンタを減らしてメモリを開放する) pUnknown->Release ( ); pBrowser->Release ( ); // COM コンポーネントの利用終了 OleUninitialize ( ); return TRUE;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.