зеркало из https://github.com/mozilla/pjs.git
930 строки
23 KiB
C++
930 строки
23 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
*
|
|
* The contents of this file are subject to the Netscape Public License
|
|
* Version 1.0 (the "NPL"); you may not use this file except in
|
|
* compliance with the NPL. You may obtain a copy of the NPL at
|
|
* http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
|
* for the specific language governing rights and limitations under the
|
|
* NPL.
|
|
*
|
|
* The Initial Developer of this code under the NPL is Netscape
|
|
* Communications Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
|
* Reserved.
|
|
*/
|
|
#ifndef CPMOZILLACONTROL_H
|
|
#define CPMOZILLACONTROL_H
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// CProxyDWebBrowserEvents
|
|
template <class T>
|
|
class CProxyDWebBrowserEvents : public IConnectionPointImpl<T, &DIID_DWebBrowserEvents, CComDynamicUnkArray>
|
|
{
|
|
public:
|
|
//methods:
|
|
//DWebBrowserEvents : IDispatch
|
|
public:
|
|
void Fire_BeforeNavigate(
|
|
BSTR URL,
|
|
long Flags,
|
|
BSTR TargetFrameName,
|
|
VARIANT * PostData,
|
|
BSTR Headers,
|
|
VARIANT_BOOL * Cancel)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[6];
|
|
for (int i = 0; i < 6; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[5].vt = VT_BSTR;
|
|
pvars[5].bstrVal= URL;
|
|
pvars[4].vt = VT_I4;
|
|
pvars[4].lVal= Flags;
|
|
pvars[3].vt = VT_BSTR;
|
|
pvars[3].bstrVal= TargetFrameName;
|
|
pvars[2].vt = VT_VARIANT | VT_BYREF;
|
|
pvars[2].byref= PostData;
|
|
pvars[1].vt = VT_BSTR;
|
|
pvars[1].bstrVal= Headers;
|
|
pvars[0].vt = VT_BOOL | VT_BYREF;
|
|
pvars[0].byref= Cancel;
|
|
DISPPARAMS disp = { pvars, NULL, 6, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x64, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_NavigateComplete(
|
|
BSTR URL)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BSTR;
|
|
pvars[0].bstrVal= URL;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x65, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_StatusTextChange(
|
|
BSTR Text)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BSTR;
|
|
pvars[0].bstrVal= Text;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x66, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_ProgressChange(
|
|
long Progress,
|
|
long ProgressMax)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[2];
|
|
for (int i = 0; i < 2; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[1].vt = VT_I4;
|
|
pvars[1].lVal= Progress;
|
|
pvars[0].vt = VT_I4;
|
|
pvars[0].lVal= ProgressMax;
|
|
DISPPARAMS disp = { pvars, NULL, 2, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x6c, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_DownloadComplete()
|
|
{
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
DISPPARAMS disp = { NULL, NULL, 0, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x68, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
}
|
|
void Fire_CommandStateChange(
|
|
long Command,
|
|
VARIANT_BOOL Enable)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[2];
|
|
for (int i = 0; i < 2; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[1].vt = VT_I4;
|
|
pvars[1].lVal= Command;
|
|
pvars[0].vt = VT_BOOL;
|
|
pvars[0].boolVal= Enable;
|
|
DISPPARAMS disp = { pvars, NULL, 2, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x69, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_DownloadBegin()
|
|
{
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
DISPPARAMS disp = { NULL, NULL, 0, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x6a, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
}
|
|
void Fire_NewWindow(
|
|
BSTR URL,
|
|
long Flags,
|
|
BSTR TargetFrameName,
|
|
VARIANT * PostData,
|
|
BSTR Headers,
|
|
VARIANT_BOOL * Processed)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[6];
|
|
for (int i = 0; i < 6; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[5].vt = VT_BSTR;
|
|
pvars[5].bstrVal= URL;
|
|
pvars[4].vt = VT_I4;
|
|
pvars[4].lVal= Flags;
|
|
pvars[3].vt = VT_BSTR;
|
|
pvars[3].bstrVal= TargetFrameName;
|
|
pvars[2].vt = VT_VARIANT | VT_BYREF;
|
|
pvars[2].byref= PostData;
|
|
pvars[1].vt = VT_BSTR;
|
|
pvars[1].bstrVal= Headers;
|
|
pvars[0].vt = VT_BOOL | VT_BYREF;
|
|
pvars[0].byref= Processed;
|
|
DISPPARAMS disp = { pvars, NULL, 6, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x6b, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_TitleChange(
|
|
BSTR Text)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BSTR;
|
|
pvars[0].bstrVal= Text;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x71, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_FrameBeforeNavigate(
|
|
BSTR URL,
|
|
long Flags,
|
|
BSTR TargetFrameName,
|
|
VARIANT * PostData,
|
|
BSTR Headers,
|
|
VARIANT_BOOL * Cancel)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[6];
|
|
for (int i = 0; i < 6; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[5].vt = VT_BSTR;
|
|
pvars[5].bstrVal= URL;
|
|
pvars[4].vt = VT_I4;
|
|
pvars[4].lVal= Flags;
|
|
pvars[3].vt = VT_BSTR;
|
|
pvars[3].bstrVal= TargetFrameName;
|
|
pvars[2].vt = VT_VARIANT | VT_BYREF;
|
|
pvars[2].byref= PostData;
|
|
pvars[1].vt = VT_BSTR;
|
|
pvars[1].bstrVal= Headers;
|
|
pvars[0].vt = VT_BOOL | VT_BYREF;
|
|
pvars[0].byref= Cancel;
|
|
DISPPARAMS disp = { pvars, NULL, 6, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0xc8, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_FrameNavigateComplete(
|
|
BSTR URL)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BSTR;
|
|
pvars[0].bstrVal= URL;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0xc9, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_FrameNewWindow(
|
|
BSTR URL,
|
|
long Flags,
|
|
BSTR TargetFrameName,
|
|
VARIANT * PostData,
|
|
BSTR Headers,
|
|
VARIANT_BOOL * Processed)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[6];
|
|
for (int i = 0; i < 6; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[5].vt = VT_BSTR;
|
|
pvars[5].bstrVal= URL;
|
|
pvars[4].vt = VT_I4;
|
|
pvars[4].lVal= Flags;
|
|
pvars[3].vt = VT_BSTR;
|
|
pvars[3].bstrVal= TargetFrameName;
|
|
pvars[2].vt = VT_VARIANT | VT_BYREF;
|
|
pvars[2].byref= PostData;
|
|
pvars[1].vt = VT_BSTR;
|
|
pvars[1].bstrVal= Headers;
|
|
pvars[0].vt = VT_BOOL | VT_BYREF;
|
|
pvars[0].byref= Processed;
|
|
DISPPARAMS disp = { pvars, NULL, 6, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0xcc, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_Quit(
|
|
VARIANT_BOOL * Cancel)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BOOL | VT_BYREF;
|
|
pvars[0].byref= Cancel;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x67, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_WindowMove()
|
|
{
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
DISPPARAMS disp = { NULL, NULL, 0, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x6d, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
}
|
|
void Fire_WindowResize()
|
|
{
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
DISPPARAMS disp = { NULL, NULL, 0, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x6e, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
}
|
|
void Fire_WindowActivate()
|
|
{
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
DISPPARAMS disp = { NULL, NULL, 0, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x6f, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
}
|
|
void Fire_PropertyChange(
|
|
BSTR Property)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BSTR;
|
|
pvars[0].bstrVal= Property;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x70, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
|
|
};
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// CProxyDWebBrowserEvents2
|
|
template <class T>
|
|
class CProxyDWebBrowserEvents2 : public IConnectionPointImpl<T, &DIID_DWebBrowserEvents2, CComDynamicUnkArray>
|
|
{
|
|
public:
|
|
//methods:
|
|
//DWebBrowserEvents2 : IDispatch
|
|
public:
|
|
void Fire_StatusTextChange(
|
|
BSTR Text)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BSTR;
|
|
pvars[0].bstrVal= Text;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x66, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_ProgressChange(
|
|
long Progress,
|
|
long ProgressMax)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[2];
|
|
for (int i = 0; i < 2; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[1].vt = VT_I4;
|
|
pvars[1].lVal= Progress;
|
|
pvars[0].vt = VT_I4;
|
|
pvars[0].lVal= ProgressMax;
|
|
DISPPARAMS disp = { pvars, NULL, 2, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x6c, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_CommandStateChange(
|
|
long Command,
|
|
VARIANT_BOOL Enable)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[2];
|
|
for (int i = 0; i < 2; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[1].vt = VT_I4;
|
|
pvars[1].lVal= Command;
|
|
pvars[0].vt = VT_BOOL;
|
|
pvars[0].boolVal= Enable;
|
|
DISPPARAMS disp = { pvars, NULL, 2, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x69, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_DownloadBegin()
|
|
{
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
DISPPARAMS disp = { NULL, NULL, 0, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x6a, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
}
|
|
void Fire_DownloadComplete()
|
|
{
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
DISPPARAMS disp = { NULL, NULL, 0, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x68, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
}
|
|
void Fire_TitleChange(
|
|
BSTR Text)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BSTR;
|
|
pvars[0].bstrVal= Text;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x71, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_PropertyChange(
|
|
BSTR szProperty)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BSTR;
|
|
pvars[0].bstrVal= szProperty;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x70, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_BeforeNavigate2(
|
|
IDispatch * pDisp,
|
|
VARIANT * URL,
|
|
VARIANT * Flags,
|
|
VARIANT * TargetFrameName,
|
|
VARIANT * PostData,
|
|
VARIANT * Headers,
|
|
VARIANT_BOOL * Cancel)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[7];
|
|
for (int i = 0; i < 7; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[6].vt = VT_DISPATCH;
|
|
pvars[6].pdispVal= pDisp;
|
|
pvars[5].vt = VT_VARIANT | VT_BYREF;
|
|
pvars[5].byref= URL;
|
|
pvars[4].vt = VT_VARIANT | VT_BYREF;
|
|
pvars[4].byref= Flags;
|
|
pvars[3].vt = VT_VARIANT | VT_BYREF;
|
|
pvars[3].byref= TargetFrameName;
|
|
pvars[2].vt = VT_VARIANT | VT_BYREF;
|
|
pvars[2].byref= PostData;
|
|
pvars[1].vt = VT_VARIANT | VT_BYREF;
|
|
pvars[1].byref= Headers;
|
|
pvars[0].vt = VT_BOOL | VT_BYREF;
|
|
pvars[0].byref= Cancel;
|
|
DISPPARAMS disp = { pvars, NULL, 7, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0xfa, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_NewWindow2(
|
|
IDispatch * * ppDisp,
|
|
VARIANT_BOOL * Cancel)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[2];
|
|
for (int i = 0; i < 2; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[1].vt = VT_DISPATCH | VT_BYREF;
|
|
pvars[1].byref= ppDisp;
|
|
pvars[0].vt = VT_BOOL | VT_BYREF;
|
|
pvars[0].byref= Cancel;
|
|
DISPPARAMS disp = { pvars, NULL, 2, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0xfb, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_NavigateComplete2(
|
|
IDispatch * pDisp,
|
|
VARIANT * URL)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[2];
|
|
for (int i = 0; i < 2; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[1].vt = VT_DISPATCH;
|
|
pvars[1].pdispVal= pDisp;
|
|
pvars[0].vt = VT_VARIANT | VT_BYREF;
|
|
pvars[0].byref= URL;
|
|
DISPPARAMS disp = { pvars, NULL, 2, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0xfc, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_DocumentComplete(
|
|
IDispatch * pDisp,
|
|
VARIANT * URL)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[2];
|
|
for (int i = 0; i < 2; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[1].vt = VT_DISPATCH;
|
|
pvars[1].pdispVal= pDisp;
|
|
pvars[0].vt = VT_VARIANT | VT_BYREF;
|
|
pvars[0].byref= URL;
|
|
DISPPARAMS disp = { pvars, NULL, 2, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x103, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_OnQuit()
|
|
{
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
DISPPARAMS disp = { NULL, NULL, 0, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0xfd, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
}
|
|
void Fire_OnVisible(
|
|
VARIANT_BOOL Visible)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BOOL;
|
|
pvars[0].boolVal= Visible;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0xfe, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_OnToolBar(
|
|
VARIANT_BOOL ToolBar)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BOOL;
|
|
pvars[0].boolVal= ToolBar;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0xff, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_OnMenuBar(
|
|
VARIANT_BOOL MenuBar)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BOOL;
|
|
pvars[0].boolVal= MenuBar;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x100, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_OnStatusBar(
|
|
VARIANT_BOOL StatusBar)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BOOL;
|
|
pvars[0].boolVal= StatusBar;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x101, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_OnFullScreen(
|
|
VARIANT_BOOL FullScreen)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BOOL;
|
|
pvars[0].boolVal= FullScreen;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x102, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
void Fire_OnTheaterMode(
|
|
VARIANT_BOOL TheaterMode)
|
|
{
|
|
VARIANTARG* pvars = new VARIANTARG[1];
|
|
for (int i = 0; i < 1; i++)
|
|
VariantInit(&pvars[i]);
|
|
T* pT = (T*)this;
|
|
pT->Lock();
|
|
IUnknown** pp = m_vec.begin();
|
|
while (pp < m_vec.end())
|
|
{
|
|
if (*pp != NULL)
|
|
{
|
|
pvars[0].vt = VT_BOOL;
|
|
pvars[0].boolVal= TheaterMode;
|
|
DISPPARAMS disp = { pvars, NULL, 1, 0 };
|
|
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
|
|
pDispatch->Invoke(0x104, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
|
|
}
|
|
pp++;
|
|
}
|
|
pT->Unlock();
|
|
delete[] pvars;
|
|
}
|
|
|
|
};
|
|
|
|
|
|
#endif |