如何在c+中连接PayPal的签出与IWebBrowser2+;winapi? 我在C++ WiLAPI中为贝宝做结账。结帐链接从现在购买buuton链接。为此,我使用了CLSID_WEBBROWSER新的WEBBROWSER类型(COM IWebBrowser2)。所以当我导航到贝宝网站时。它说网络浏览器是旧版本。如何使用此WebBrowser导航到此网站

如何在c+中连接PayPal的签出与IWebBrowser2+;winapi? 我在C++ WiLAPI中为贝宝做结账。结帐链接从现在购买buuton链接。为此,我使用了CLSID_WEBBROWSER新的WEBBROWSER类型(COM IWebBrowser2)。所以当我导航到贝宝网站时。它说网络浏览器是旧版本。如何使用此WebBrowser导航到此网站,c++,winapi,paypal,com,C++,Winapi,Paypal,Com,WebBrowser.h: #包括 #包括 #包括 #包括 #包括 使用名称空间std; 类别浏览器: 公共网站, 公共IOleInPlaceSite, 公共历史 { 公众: 网络浏览器(HWND hWndParent); bool CreateBrowser(); 矩形像素测量(const-RECT&_-rc); 虚拟void SetRect(const RECT和_rc); //----控制方法----- void GoBack(); void GoForward(); 无效刷新(); 无

WebBrowser.h:


#包括
#包括
#包括
#包括
#包括
使用名称空间std;
类别浏览器:
公共网站,
公共IOleInPlaceSite,
公共历史
{
公众:
网络浏览器(HWND hWndParent);
bool CreateBrowser();
矩形像素测量(const-RECT&_-rc);
虚拟void SetRect(const RECT和_rc);
//----控制方法-----
void GoBack();
void GoForward();
无效刷新();
无效导航(wstring szUrl);
//----IUnknown-----
虚拟HRESULT STDMETHODCALLTYPE查询接口(refid riid,
无效**ppvObject)覆盖;
虚拟ULONG STDMETHODCALLTYPE AddRef(void);
虚拟ULONG标准方法调用类型发布(void);
//------伊洛文杜----------
虚拟HRESULT STDMETHODCALLTYPE GetWindow(
__RPC_uuderef_uout_uopt HWND*phwnd)覆盖;
虚拟HRESULT STDMETHODCALLTYPE上下文敏感帮助(
BOOL-fEnterMode)覆盖;
//------伊洛莱因普拉斯特----------
虚拟HRESULT STDMETHODCALLTYPE CanInPlaceActivate(void)覆盖;
虚拟HRESULT STDMETHODCALLTYPE OnInPlaceActivate(void)覆盖;
虚拟HRESULT STDMETHODCALLTYPE OnUIActivate(void)覆盖;
虚拟HRESULT STDMETHODCALLTYPE GetWindowContext(
__RPC\uu deref\u out\u opt IOleInPlaceFrame**ppFrame,
__RPC\uu deref\u out\u opt IOleInPlaceUIWindow**ppDoc,
__RPC_uuout LPRECT lprcPosRect,
__RPC_uuout LPRECT lprcClipRect,
__RPC__inoutlpoleinplaceframeinfo(lpFrameInfo)重写;
虚拟HRESULT STDMETHODCALLTYPE滚动(
大小(现有)覆盖;
虚拟HRESULT STDMETHODCALLTYPE OnUIDeactivate(
BOOL fUndoable)覆盖;
虚拟HWND GetControlWindow();
虚拟HRESULT STDMETHODCALLTYPE OnInPlaceDeactivate(void)覆盖;
虚拟HRESULT STDMETHODCALLTYPE丢弃撤消状态(void)覆盖;
虚拟HRESULT STDMETHODCALLTYPE停用EANDUNDO(无效)覆盖;
虚拟HRESULT STDMETHODCALLTYPE OnPosRectChange(
__RPC_uu在lprect(lprcPosRect)覆盖中;
//------IOleClientSite----------
虚拟HRESULT STDMETHODCALLTYPE保存对象(void)覆盖;
虚拟HRESULT STDMETHODCALLTYPE GetMoniker(
德沃德,
德沃德·德维奇莫尼克,
__RPC_uuderef_uout_uopt IMoniker**ppmk)覆盖;
虚拟HRESULT STDMETHODCALLTYPE GetContainer(
__RPC__deref_out_opt IOleContainer**ppContainer)覆盖;
虚拟HRESULT STDMETHODCALLTYPE显示对象(void)覆盖;
显示窗口上的虚拟HRESULT STDMETHODCALLTYPE(
BOOL(fShow)覆盖;
虚拟HRESULT STDMETHODCALLTYPE RequestNewObjectLayout(void)覆盖;
//----历史-----
虚拟HRESULT STDMETHODCALLTYPE CreateStream(
__RPC_uuin_字符串常量*pwcsName,
德沃德·格夫莫德,
德沃德保留地1,
德沃德保留地2,
__RPC_uuuderef_uout_uopt IStream**ppstm)覆盖;
虚拟HRESULT STDMETHODCALLTYPE OpenStream(
常量OLECHAR*pwcsName,
作废*保留1,
德沃德·格夫莫德,
德沃德保留地2,
IStream**ppstm)覆盖;
虚拟HRESULT STDMETHODCALLTYPE CreateStorage(
__RPC_uuin_字符串常量*pwcsName,
德沃德·格夫莫德,
德沃德保留地1,
德沃德保留地2,
__RPC_uuuderef_uout_uopt历史记录**ppstg)覆盖;
虚拟HRESULT STDMETHODCALLTYPE OpenStorage(
__RPC_uuin_opt_字符串常量*pwcsName,
__RPC_uuin_uopt storage*pstgPriority,
德沃德·格夫莫德,
__RPC_uuderef_uopt_uin_uopt SNB SNB除外,
德沃德保留,
__RPC_uuuderef_uout_uopt历史记录**ppstg)覆盖;
虚拟HRESULT STDMETHODCALLTYPE CopyTo(
德沃德·西德除外,
常数IID*RgiideExclude,
__选择SNB中的RPC不包括在内,
IStorage*PSTGTest)覆盖;
虚拟HRESULT STDMETHODCALLTYPE MoveElementTo(
__RPC_uuin_字符串常量*pwcsName,
__RPC_uuin_opt IStorage*pstgDest,
__RPC_uuin_字符串常量*pwcsNewName,
DWORD grfFlags)覆盖;
虚拟HRESULT STDMETHODCALLTYPE提交(
DWORD grfCommitFlags)覆盖;
虚拟HRESULT STDMETHODCALLTYPE恢复(无效)覆盖;
虚拟HRESULT STDMETHODCALLTYPE枚举元素(
德沃德保留地1,
作废*保留2,
德沃德保留区3,
IEnumSTATSTG**ppenum)覆盖;
虚拟HRESULT STDMETHODCALLTYPE元素(
__RPC_uuin_字符串常量*pwcsName)重写;
虚拟HRESULT STDMETHODCALLTYPE重命名元素(
__RPC_uuin_字符串常量*pwcsOldName,
__RPC_uuin_字符串常量*pwcsNewName)重写;
虚拟HRESULT STDMETHODCALLTYPE SetElementTimes(
__RPC_uuin_opt_字符串常量*pwcsName,
__RPC_uuin_opt const FILETIME*pctime,
__RPC_uuin_opt const FILETIME*patime,
__RPC_uuin_opt const FILETIME*pmtime)覆盖;
虚拟HRESULT STDMETHODCALLTYPE集合类(
__REFCLSID clsid中的RPC_uu)覆盖;
虚拟HRESULT STDMETHODCALLTYPE SetStateBits(
德沃德·格夫斯特比特,
DWORD grfMask)覆盖;
虚拟HRESULT STDMETHODCALLTYPE Stat(
__RPC_uuout STATSTG*pstatstg,
DWORD GRFSTATFALG)覆盖;
受保护的:
IOleObject*oleObject;
IOleInPlaceObject*oleInPlaceObject;
IWebBrowser2*webBrowser2;
长iComRefCount;
矩形物体;
HWND HWND父母;
HWND-HWND控制;
};
Resource.cpp:

#包括“WebBrowser.h”
WebBrowser::WebBrowser(HWND\u hWndParent)
{
iComRefCount=0;
::SetRect(&rObject,-300,-300300300);
hWndPa
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
  Microsoft
     Internet Explorer
        Main
           FeatureControl
              FEATURE_BEHAVIORS
                 appname.exe = (DWORD) 00000000
// Browser Emulation
vector<wchar_t> fn(1000);
GetModuleFileName(0, fn.data(), 1000);
PathStripPath(fn.data());
RKEY k(HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION");
k[fn.data()] = 11001UL; // Use IE 11
WinHttpClient WinClient1(ExpChkoutStr.GetBuffer());
WinClient1.SetRequireValidSslCertificates(false);
WinClient1.SendHttpRequest(L"GET");
httpResponseContent1 = WinClient1.GetResponseContent();
CString strTransactionRet = UrlDecode(httpResponseContent1.c_str());
// Extract token from response
CString sToken = ExtractElement(strTransactionRet, L"TOKEN");

if (sToken == L"")
{
    wprintf(L"Internal error: (Paypal): no token was generated (%s)", strTransactionRet);
    MessageBox(NULL, L"Internal payment processing error", L"", MB_OK);
    return FALSE;
}
CString LinkToOpen = (m_sandbox) ? SANDBOX_PAYPAL_CHECKOUT : REAL_PAYPAL_CHECKOUT;

LinkToOpen += L"&token=";
LinkToOpen += sToken;