@@ -9,10 +9,9 @@
|
|||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
#include "ax.h"
|
#include "ax.h"
|
||||||
|
|
||||||
//#include "IEDispatcher.h"
|
|
||||||
|
|
||||||
void IEBrowser::Boop(char* test)
|
void IEBrowser::Boop(char* test)
|
||||||
{
|
{
|
||||||
|
// External functions may end up here in the future
|
||||||
}
|
}
|
||||||
|
|
||||||
IEBrowser::IEBrowser(HWND attachHWnd) {
|
IEBrowser::IEBrowser(HWND attachHWnd) {
|
||||||
@@ -26,7 +25,6 @@ IEBrowser::IEBrowser(HWND attachHWnd) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
hwnd = attachHWnd;
|
hwnd = attachHWnd;
|
||||||
spDocument = 0;
|
|
||||||
webBrowser = 0;
|
webBrowser = 0;
|
||||||
SendMessage(hwnd,AX_INPLACE,1,0);
|
SendMessage(hwnd,AX_INPLACE,1,0);
|
||||||
SendMessage(hwnd,AX_QUERYINTERFACE,(WPARAM)&IID_IWebBrowser2,(LPARAM)&webBrowser);
|
SendMessage(hwnd,AX_QUERYINTERFACE,(WPARAM)&IID_IWebBrowser2,(LPARAM)&webBrowser);
|
||||||
@@ -39,79 +37,17 @@ IEBrowser::~IEBrowser(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Something goes here
|
|
||||||
int IEBrowser::setExternal(IDispatch** ext)
|
|
||||||
{
|
|
||||||
std::cout << &m_IEDispatcher;
|
|
||||||
IInternetHostSecurityManager* spSecMan;
|
|
||||||
spDocument2->QueryInterface(IID_IInternetHostSecurityManager,
|
|
||||||
(void **) &spSecMan);
|
|
||||||
|
|
||||||
// TODO: hr needs to say: 'S_OK'
|
|
||||||
//spSecMan->QueryCustomPolicy
|
|
||||||
HRESULT hr = spSecMan->ProcessUrlAction(URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY,
|
|
||||||
NULL, 0, NULL, 0, 0, PUAF_WARN_IF_DENIED);
|
|
||||||
|
|
||||||
(*ext) = &m_IEDispatcher;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IEBrowser::navigateSyncURL(wchar_t* url)
|
bool IEBrowser::navigateSyncURL(wchar_t* url)
|
||||||
{
|
{
|
||||||
MSG messages;
|
MSG messages;
|
||||||
if (webBrowser)
|
if (webBrowser)
|
||||||
{
|
{
|
||||||
webBrowser->Navigate(url,0,0,0,0);
|
webBrowser->Navigate(url,0,0,0,0);
|
||||||
for (int i=1;i<1000;i++)
|
|
||||||
{
|
|
||||||
while (PeekMessage (&messages, NULL, 0, 0,PM_REMOVE))
|
|
||||||
{
|
|
||||||
if (IsDialogMessage(hwnd, &messages) == 0)
|
|
||||||
{
|
|
||||||
TranslateMessage(&messages);
|
|
||||||
DispatchMessage(&messages);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Sleep(30);
|
|
||||||
|
|
||||||
HRESULT hresult = webBrowser->get_Document(&spDocument);
|
|
||||||
if (SUCCEEDED(hresult) && (spDocument != 0))
|
|
||||||
{
|
|
||||||
|
|
||||||
IOleObject* spOleObject;
|
|
||||||
if (SUCCEEDED(spDocument->QueryInterface(IID_IOleObject,(void**)&spOleObject)))
|
|
||||||
{
|
|
||||||
IOleClientSite* spClientSite;
|
|
||||||
hresult = spOleObject->GetClientSite(&spClientSite);
|
|
||||||
if (SUCCEEDED(hresult) && spClientSite)
|
|
||||||
{
|
|
||||||
m_spDefaultDocHostUIHandler = spClientSite;
|
|
||||||
ICustomDoc* spCustomDoc;
|
|
||||||
|
|
||||||
//IEDispatcher* spIEDispatcher;
|
|
||||||
if (SUCCEEDED(m_spDefaultDocHostUIHandler->QueryInterface(IID_IDocHostUIHandler,(void**)&m_spHandler)))
|
|
||||||
{
|
|
||||||
if (SUCCEEDED(spDocument->QueryInterface(IID_ICustomDoc,(void**)&spCustomDoc)))
|
|
||||||
{
|
|
||||||
spCustomDoc->SetUIHandler(m_spHandler);
|
|
||||||
m_spHandler->GetExternal(&m_spExternal);
|
|
||||||
spDocument->QueryInterface(IID_IHTMLDocument2, (void **) &spDocument2);
|
|
||||||
setExternal(&m_spExternal);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MessageBox(NULL,"Cannot read IWebBrowser2...",(g_PlaceholderName+" Crash").c_str(),MB_OK);
|
MessageBox(NULL,"Cannot read IWebBrowser2...",(g_PlaceholderName+" Crash").c_str(),MB_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,12 +14,4 @@ class IEBrowser {
|
|||||||
private:
|
private:
|
||||||
IWebBrowser2* webBrowser;
|
IWebBrowser2* webBrowser;
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
IDispatch* spDocument;
|
|
||||||
IHTMLDocument* spDocument2;
|
|
||||||
IDocHostUIHandler* m_spHandler;
|
|
||||||
IDispatch* m_spExternal;
|
|
||||||
IDispatch* m_newExternal;
|
|
||||||
IEDispatcher m_IEDispatcher;
|
|
||||||
IOleClientSite* m_spDefaultDocHostUIHandler;
|
|
||||||
int setExternal(IDispatch** ext);
|
|
||||||
};
|
};
|
||||||
|
|||||||
115
ax.cpp
115
ax.cpp
@@ -11,7 +11,6 @@
|
|||||||
#pragma warning (disable: 4244)
|
#pragma warning (disable: 4244)
|
||||||
#pragma warning (disable: 4800)
|
#pragma warning (disable: 4800)
|
||||||
|
|
||||||
|
|
||||||
// AXClientSite class
|
// AXClientSite class
|
||||||
// ------- Implement member functions
|
// ------- Implement member functions
|
||||||
AXClientSite :: AXClientSite()
|
AXClientSite :: AXClientSite()
|
||||||
@@ -26,6 +25,83 @@ AXClientSite :: ~AXClientSite()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: ShowContextMenu(DWORD dwID, POINT *ppt, IUnknown *pcmdtReserved, IDispatch *pdispReserved)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: GetHostInfo(DOCHOSTUIINFO *pInfo)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: ShowUI( DWORD dwID, IOleInPlaceActiveObject *pActiveObject, IOleCommandTarget *pCommandTarget, IOleInPlaceFrame *pFrame, IOleInPlaceUIWindow *pDoc)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: HideUI( void)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: UpdateUI( void)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: OnDocWindowActivate(BOOL fActivate)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: OnFrameWindowActivate(BOOL fActivate)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: ResizeBorder( LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fRameWindow)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: TranslateAccelerator( LPMSG lpMsg, const GUID *pguidCmdGroup, DWORD nCmdID)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: GetOptionKeyPath( LPOLESTR *pchKey, DWORD dw)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: GetDropTarget( IDropTarget *pDropTarget, IDropTarget **ppDropTarget)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: GetExternal(IDispatch **ppDispatch)
|
||||||
|
{
|
||||||
|
//IDispatch* disp = ax->GetExternalDispatch();
|
||||||
|
*ppDispatch = this;
|
||||||
|
/* if (disp!=NULL)
|
||||||
|
{
|
||||||
|
*ppDispatch = this;
|
||||||
|
return S_OK;
|
||||||
|
} */
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite ::TranslateUrl( DWORD dwTranslate, OLECHAR *pchURLIn, OLECHAR **ppchURLOut)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP AXClientSite :: FilterDataObject( IDataObject *pDO, IDataObject **ppDORet)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
// IUnknown methods
|
// IUnknown methods
|
||||||
STDMETHODIMP AXClientSite :: QueryInterface(REFIID iid,void**ppvObject)
|
STDMETHODIMP AXClientSite :: QueryInterface(REFIID iid,void**ppvObject)
|
||||||
{
|
{
|
||||||
@@ -46,6 +122,8 @@ STDMETHODIMP AXClientSite :: QueryInterface(REFIID iid,void**ppvObject)
|
|||||||
*ppvObject = (IOleInPlaceFrame*)this;
|
*ppvObject = (IOleInPlaceFrame*)this;
|
||||||
if (iid == IID_IOleInPlaceUIWindow)
|
if (iid == IID_IOleInPlaceUIWindow)
|
||||||
*ppvObject = (IOleInPlaceUIWindow*)this;
|
*ppvObject = (IOleInPlaceUIWindow*)this;
|
||||||
|
if (iid == IID_IDocHostUIHandler)
|
||||||
|
*ppvObject = (IDocHostUIHandler*)this;
|
||||||
}
|
}
|
||||||
|
|
||||||
//* Log Call
|
//* Log Call
|
||||||
@@ -229,9 +307,9 @@ STDMETHODIMP AXClientSite :: SetActiveObject(IOleInPlaceActiveObject*pV,LPCOLEST
|
|||||||
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: SetStatusText(LPCOLESTR t)
|
STDMETHODIMP AXClientSite :: SetStatusText(LPCOLESTR t)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: EnableModeless(BOOL f)
|
STDMETHODIMP AXClientSite :: EnableModeless(BOOL f)
|
||||||
{
|
{
|
||||||
@@ -251,14 +329,21 @@ HRESULT _stdcall AXClientSite :: GetTypeInfoCount(
|
|||||||
HRESULT _stdcall AXClientSite :: GetTypeInfo(
|
HRESULT _stdcall AXClientSite :: GetTypeInfo(
|
||||||
unsigned int iTInfo,
|
unsigned int iTInfo,
|
||||||
LCID lcid,
|
LCID lcid,
|
||||||
ITypeInfo FAR* FAR* ppTInfo) {return E_NOTIMPL;}
|
ITypeInfo FAR* FAR* ppTInfo)
|
||||||
|
{
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
HRESULT _stdcall AXClientSite :: GetIDsOfNames(
|
HRESULT _stdcall AXClientSite :: GetIDsOfNames(
|
||||||
REFIID riid,
|
REFIID riid,
|
||||||
OLECHAR FAR* FAR*,
|
OLECHAR FAR* FAR* ext_function_name,
|
||||||
unsigned int cNames,
|
unsigned int cNames,
|
||||||
LCID lcid,
|
LCID lcid,
|
||||||
DISPID FAR* ) {return E_NOTIMPL;}
|
DISPID FAR* )
|
||||||
|
{
|
||||||
|
m_lastExternalName = *ext_function_name;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Other Methods
|
// Other Methods
|
||||||
@@ -284,8 +369,6 @@ AX :: AX(char* cls)
|
|||||||
Init(cls);
|
Init(cls);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void AX :: Clean()
|
void AX :: Clean()
|
||||||
{
|
{
|
||||||
if (Site.InPlace == true)
|
if (Site.InPlace == true)
|
||||||
@@ -422,9 +505,24 @@ HRESULT _stdcall AXClientSite :: Invoke(
|
|||||||
VARIANT FAR* pVarResult,
|
VARIANT FAR* pVarResult,
|
||||||
EXCEPINFO FAR* pExcepInfo,
|
EXCEPINFO FAR* pExcepInfo,
|
||||||
unsigned int FAR* puArgErr)
|
unsigned int FAR* puArgErr)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (m_lastExternalName==L"Insert")
|
||||||
|
{
|
||||||
|
|
||||||
|
MessageBoxW(NULL, pDispParams->rgvarg->bstrVal,L"Add insert here...",MB_OK);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
else if (m_lastExternalName==L"Boop")
|
||||||
|
{
|
||||||
|
MessageBox(NULL, "BOOP", "Boopity boop",MB_OK);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void _stdcall AXClientSite :: OnDataChange(FORMATETC *pFormatEtc,STGMEDIUM *pStgmed)
|
void _stdcall AXClientSite :: OnDataChange(FORMATETC *pFormatEtc,STGMEDIUM *pStgmed)
|
||||||
@@ -531,7 +629,6 @@ LRESULT CALLBACK AXWndProc(HWND hh,UINT mm,WPARAM ww,LPARAM ll)
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mm == AX_GETAXINTERFACE)
|
if (mm == AX_GETAXINTERFACE)
|
||||||
{
|
{
|
||||||
AX* ax = (AX*)GetWindowLong(hh,GWL_USERDATA);
|
AX* ax = (AX*)GetWindowLong(hh,GWL_USERDATA);
|
||||||
|
|||||||
71
ax.h
71
ax.h
@@ -1,4 +1,6 @@
|
|||||||
// AX.H
|
// AX.H
|
||||||
|
#include <mshtmhst.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
// messages
|
// messages
|
||||||
#define AX_QUERYINTERFACE (WM_USER + 1)
|
#define AX_QUERYINTERFACE (WM_USER + 1)
|
||||||
@@ -9,7 +11,6 @@
|
|||||||
#define AX_SETDATAADVISE (WM_USER + 6)
|
#define AX_SETDATAADVISE (WM_USER + 6)
|
||||||
#define AX_DOVERB (WM_USER + 7)
|
#define AX_DOVERB (WM_USER + 7)
|
||||||
|
|
||||||
|
|
||||||
// Registration function
|
// Registration function
|
||||||
ATOM AXRegister();
|
ATOM AXRegister();
|
||||||
|
|
||||||
@@ -20,7 +21,8 @@ class AXClientSite :
|
|||||||
public IDispatch,
|
public IDispatch,
|
||||||
public IAdviseSink,
|
public IAdviseSink,
|
||||||
public IOleInPlaceSite,
|
public IOleInPlaceSite,
|
||||||
public IOleInPlaceFrame
|
public IOleInPlaceFrame,
|
||||||
|
public IDocHostUIHandler
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
@@ -28,7 +30,6 @@ class AXClientSite :
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
||||||
HWND Window;
|
HWND Window;
|
||||||
HWND Parent;
|
HWND Parent;
|
||||||
HMENU Menu;
|
HMENU Menu;
|
||||||
@@ -56,6 +57,63 @@ class AXClientSite :
|
|||||||
STDMETHODIMP OnShowWindow(BOOL f);
|
STDMETHODIMP OnShowWindow(BOOL f);
|
||||||
STDMETHODIMP RequestNewObjectLayout();
|
STDMETHODIMP RequestNewObjectLayout();
|
||||||
|
|
||||||
|
// IDDocHandler methods
|
||||||
|
STDMETHODIMP ShowContextMenu(
|
||||||
|
/* [in] */ DWORD dwID,
|
||||||
|
/* [in] */ POINT *ppt,
|
||||||
|
/* [in] */ IUnknown *pcmdtReserved,
|
||||||
|
/* [in] */ IDispatch *pdispReserved);
|
||||||
|
|
||||||
|
STDMETHODIMP GetHostInfo(
|
||||||
|
/* [out][in] */ DOCHOSTUIINFO *pInfo);
|
||||||
|
|
||||||
|
STDMETHODIMP ShowUI(
|
||||||
|
/* [in] */ DWORD dwID,
|
||||||
|
/* [in] */ IOleInPlaceActiveObject *pActiveObject,
|
||||||
|
/* [in] */ IOleCommandTarget *pCommandTarget,
|
||||||
|
/* [in] */ IOleInPlaceFrame *pFrame,
|
||||||
|
/* [in] */ IOleInPlaceUIWindow *pDoc);
|
||||||
|
|
||||||
|
STDMETHODIMP HideUI( void);
|
||||||
|
|
||||||
|
STDMETHODIMP UpdateUI( void);
|
||||||
|
|
||||||
|
STDMETHODIMP OnDocWindowActivate(
|
||||||
|
/* [in] */ BOOL fActivate);
|
||||||
|
|
||||||
|
STDMETHODIMP OnFrameWindowActivate(
|
||||||
|
/* [in] */ BOOL fActivate);
|
||||||
|
|
||||||
|
STDMETHODIMP ResizeBorder(
|
||||||
|
/* [in] */ LPCRECT prcBorder,
|
||||||
|
/* [in] */ IOleInPlaceUIWindow *pUIWindow,
|
||||||
|
/* [in] */ BOOL fRameWindow);
|
||||||
|
|
||||||
|
STDMETHODIMP TranslateAccelerator(
|
||||||
|
/* [in] */ LPMSG lpMsg,
|
||||||
|
/* [in] */ const GUID *pguidCmdGroup,
|
||||||
|
/* [in] */ DWORD nCmdID);
|
||||||
|
|
||||||
|
STDMETHODIMP GetOptionKeyPath(
|
||||||
|
/* [out] */ LPOLESTR *pchKey,
|
||||||
|
/* [in] */ DWORD dw);
|
||||||
|
|
||||||
|
STDMETHODIMP GetDropTarget(
|
||||||
|
/* [in] */ IDropTarget *pDropTarget,
|
||||||
|
/* [out] */ IDropTarget **ppDropTarget);
|
||||||
|
|
||||||
|
STDMETHODIMP GetExternal(
|
||||||
|
/* [out] */ IDispatch **ppDispatch);
|
||||||
|
|
||||||
|
STDMETHODIMP TranslateUrl(
|
||||||
|
/* [in] */ DWORD dwTranslate,
|
||||||
|
/* [in] */ OLECHAR *pchURLIn,
|
||||||
|
/* [out] */ OLECHAR **ppchURLOut);
|
||||||
|
|
||||||
|
STDMETHODIMP FilterDataObject(
|
||||||
|
/* [in] */ IDataObject *pDO,
|
||||||
|
/* [out] */ IDataObject **ppDORet);
|
||||||
|
|
||||||
// IAdviseSink methods
|
// IAdviseSink methods
|
||||||
STDMETHODIMP_(void) OnDataChange(FORMATETC *pFormatEtc,STGMEDIUM *pStgmed);
|
STDMETHODIMP_(void) OnDataChange(FORMATETC *pFormatEtc,STGMEDIUM *pStgmed);
|
||||||
|
|
||||||
@@ -90,14 +148,13 @@ class AXClientSite :
|
|||||||
STDMETHODIMP EnableModeless(BOOL f);
|
STDMETHODIMP EnableModeless(BOOL f);
|
||||||
STDMETHODIMP TranslateAccelerator(LPMSG,WORD);
|
STDMETHODIMP TranslateAccelerator(LPMSG,WORD);
|
||||||
|
|
||||||
|
std::wstring m_lastExternalName;
|
||||||
|
|
||||||
// IDispatch Methods
|
// IDispatch Methods
|
||||||
HRESULT _stdcall GetTypeInfoCount(unsigned int * pctinfo);
|
HRESULT _stdcall GetTypeInfoCount(unsigned int * pctinfo);
|
||||||
HRESULT _stdcall GetTypeInfo(unsigned int iTInfo,LCID lcid,ITypeInfo FAR* FAR* ppTInfo);
|
HRESULT _stdcall GetTypeInfo(unsigned int iTInfo,LCID lcid,ITypeInfo FAR* FAR* ppTInfo);
|
||||||
HRESULT _stdcall GetIDsOfNames(REFIID riid,OLECHAR FAR* FAR*,unsigned int cNames,LCID lcid,DISPID FAR* );
|
HRESULT _stdcall GetIDsOfNames(REFIID riid,OLECHAR FAR* FAR*,unsigned int cNames,LCID lcid,DISPID FAR* );
|
||||||
HRESULT _stdcall Invoke(DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS FAR* pDispParams,VARIANT FAR* pVarResult,EXCEPINFO FAR* pExcepInfo,unsigned int FAR* puArgErr);
|
HRESULT _stdcall Invoke(DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS FAR* pDispParams,VARIANT FAR* pVarResult,EXCEPINFO FAR* pExcepInfo,unsigned int FAR* puArgErr);
|
||||||
|
|
||||||
// IOleControlSite Methods
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -129,11 +186,7 @@ class AX
|
|||||||
DWORD AdviseToken;
|
DWORD AdviseToken;
|
||||||
DWORD DAdviseToken[100];
|
DWORD DAdviseToken[100];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
CLSID clsid;
|
CLSID clsid;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user