Lindsay Mathieson's newest wxActiveX class has been wrapped into a new

extension module called wx.activex.  Lots of demo and lib updates to
go along with it.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2004-03-23 05:29:50 +00:00
parent 13baae2c95
commit b7c75283f2
98 changed files with 16994 additions and 21 deletions
+211
View File
@@ -0,0 +1,211 @@
#---------------------------------------------------------------------------
# Some helper and utility functions for ActiveX
t4 = " " * 4
t8 = " " * 8
def GetAXInfo(ax):
"""
Returns a printable summary of the TypeInfo from the ActiveX instance
passed in.
"""
def ProcessFuncX(f, out, name):
out.append(name)
out.append(t4 + "retType: %s" % f.retType.vt_type)
if f.params:
out.append(t4 + "params:")
for p in f.params:
out.append(t8 + p.name)
out.append(t8+t4+ "in:%s out:%s optional:%s type:%s" % (p.isIn, p.isOut, p.isOptional, p.vt_type))
out.append('')
def ProcessPropX(p, out):
out.append(GernerateAXModule.trimPropName(p.name))
out.append(t4+ "type:%s arg:%s canGet:%s canSet:%s" % (p.type.vt_type, p.arg.vt_type, p.canGet, p.canSet))
out.append('')
out = []
out.append("PROPERTIES")
out.append("-"*20)
for p in ax.GetAXProperties():
ProcessPropX(p, out)
out.append('\n\n')
out.append("METHODS")
out.append("-"*20)
for m in ax.GetAXMethods():
ProcessFuncX(m, out, GernerateAXModule.trimMethodName(m.name))
out.append('\n\n')
out.append("EVENTS")
out.append("-"*20)
for e in ax.GetAXEvents():
ProcessFuncX(e, out, GernerateAXModule.trimEventName(e.name))
out.append('\n\n')
return "\n".join(out)
class GernerateAXModule:
def __init__(self, ax, className, modulePath, moduleName=None, verbose=False):
"""
Make a Python module file with a class that has been specialized
for the AcitveX object.
ax An instance of the ActiveXWindow class
className The name to use for the new class
modulePath The path where the new module should be written to
moduleName The name of the .py file to create. If not given
then the className will be used.
"""
import os
if moduleName is None:
moduleName = className + '.py'
filename = os.path.join(modulePath, moduleName)
if verbose:
print "Creating module in:", filename
print " ProgID: ", ax.GetCLSID().GetProgIDString()
print " CLSID: ", ax.GetCLSID().GetCLSIDString()
print
self.mf = file(filename, "w")
self.WriteFileHeader(ax)
self.WriteEvents(ax)
self.WriteClassHeader(ax, className)
self.WriteMethods(ax)
self.WriteProperties(ax)
self.WriteDocs(ax)
self.mf.close()
del self.mf
def WriteFileHeader(self, ax):
self.write("# This module was generated by the wx.activex.GernerateAXModule class\n"
"# (See also the genaxmodule script.)\n")
self.write("import wx")
self.write("import wx.activex\n")
self.write("clsID = '%s'\nprogID = '%s'\n"
% (ax.GetCLSID().GetCLSIDString(), ax.GetCLSID().GetProgIDString()))
self.write("\n")
def WriteEvents(self, ax):
events = ax.GetAXEvents()
if events:
self.write("# Create eventTypes and event binders")
for e in events:
self.write("wxEVT_%s = wx.activex.RegisterActiveXEvent('%s')"
% (self.trimEventName(e.name), e.name))
self.write()
for e in events:
n = self.trimEventName(e.name)
self.write("EVT_%s = wx.PyEventBinder(wxEVT_%s, 1)" % (n,n))
self.write("\n")
def WriteClassHeader(self, ax, className):
self.write("# Derive a new class from ActiveXWindow")
self.write("""\
class %s(wx.activex.ActiveXWindow):
def __init__(self, parent, ID=-1, pos=wx.DefaultPosition,
size=wx.DefaultSize, style=0, name='%s'):
wx.activex.ActiveXWindow.__init__(self, parent,
wx.activex.CLSID('%s'),
ID, pos, size, style, name)
""" % (className, className, ax.GetCLSID().GetCLSIDString()) )
def WriteMethods(self, ax):
methods = ax.GetAXMethods()
if methods:
self.write(t4, "# Methods exported by the ActiveX object")
for m in methods:
name = self.trimMethodName(m.name)
self.write(t4, "def %s(self%s):" % (name, self.getParameters(m, True)))
self.write(t8, "return self.CallAXMethod('%s'%s)" % (m.name, self.getParameters(m, False)))
self.write()
def WriteProperties(self, ax):
props = ax.GetAXProperties()
if props:
self.write(t4, "# Getters, Setters and properties")
for p in props:
getterName = setterName = "None"
if p.canGet:
getterName = "_get_" + p.name
self.write(t4, "def %s(self):" % getterName)
self.write(t8, "return self.GetAXProp('%s')" % p.name)
if p.canSet:
setterName = "_set_" + p.name
self.write(t4, "def %s(self, %s):" % (setterName, p.arg.name))
self.write(t8, "self.SetAXProp('%s', %s)" % (p.name, p.arg.name))
self.write(t4, "%s = property(%s, %s)" %
(self.trimPropName(p.name), getterName, setterName))
self.write()
def WriteDocs(self, ax):
self.write()
doc = GetAXInfo(ax)
for line in doc.split('\n'):
self.write("# ", line)
def write(self, *args):
for a in args:
self.mf.write(a)
self.mf.write("\n")
def trimEventName(name):
if name.startswith("On"):
name = name[2:]
return name
trimEventName = staticmethod(trimEventName)
def trimPropName(name):
#name = name[0].lower() + name[1:]
name = name.lower()
import keyword
if name in keyword.kwlist: name += '_'
return name
trimPropName = staticmethod(trimPropName)
def trimMethodName(name):
import keyword
if name in keyword.kwlist: name += '_'
return name
trimMethodName = staticmethod(trimMethodName)
def getParameters(self, m, withDefaults):
import keyword
st = ""
# collect the input parameters, if both isIn and isOut are
# False then assume it is an input paramater
params = []
for p in m.params:
if p.isIn or (not p.isIn and not p.isOut):
params.append(p)
# did we get any?
for p in params:
name = p.name
if name in keyword.kwlist: name += '_'
st += ", "
st += name
if withDefaults and p.isOptional:
st += '=None'
return st
#---------------------------------------------------------------------------
@@ -0,0 +1,16 @@
// A bunch of %rename directives generated by ./distrib/build_renamers.py
// in order to remove the wx prefix from all global scope names.
#ifndef BUILDING_RENAMERS
%rename(ParamX) wxParamX;
%rename(FuncX) wxFuncX;
%rename(PropX) wxPropX;
%rename(ParamXArray) wxParamXArray;
%rename(FuncXArray) wxFuncXArray;
%rename(PropXArray) wxPropXArray;
%rename(ActiveXWindow) wxActiveXWindow;
%rename(ActiveXEvent) wxActiveXEvent;
%rename(IEHtmlWindowBase) wxIEHtmlWindowBase;
#endif
@@ -0,0 +1,2 @@
EVT*
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,133 @@
/*
wxActiveX Library Licence, Version 3
====================================
Copyright (C) 2003 Lindsay Mathieson [, ...]
Everyone is permitted to copy and distribute verbatim copies
of this licence document, but changing it is not allowed.
wxActiveX LIBRARY LICENCE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public Licence as published by
the Free Software Foundation; either version 2 of the Licence, or (at
your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
General Public Licence for more details.
You should have received a copy of the GNU Library General Public Licence
along with this software, usually in a file named COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA.
EXCEPTION NOTICE
1. As a special exception, the copyright holders of this library give
permission for additional uses of the text contained in this release of
the library as licenced under the wxActiveX Library Licence, applying
either version 3 of the Licence, or (at your option) any later version of
the Licence as published by the copyright holders of version 3 of the
Licence document.
2. The exception is that you may use, copy, link, modify and distribute
under the user's own terms, binary object code versions of works based
on the Library.
3. If you copy code from files distributed under the terms of the GNU
General Public Licence or the GNU Library General Public Licence into a
copy of this library, as this licence permits, the exception does not
apply to the code that you add in this way. To avoid misleading anyone as
to the status of such modified files, you must delete this exception
notice from such code and/or adjust the licensing conditions notice
accordingly.
4. If you write modifications of your own for this library, it is your
choice whether to permit this exception to apply to your modifications.
If you do not wish that, you must delete the exception notice from such
code and/or adjust the licensing conditions notice accordingly.
*/
// This module contains the declarations of the stream adapters and such that
// used to be in IEHtmlWin.cpp, so that they can be used independently in the
// wxPython wrappers...
#ifndef _IEHTMLSTREAM_H_
#define _IEHTMLSTREAM_H_
class IStreamAdaptorBase : public IStream
{
private:
DECLARE_OLE_UNKNOWN(IStreamAdaptorBase);
public:
string prepend;
IStreamAdaptorBase() {}
virtual ~IStreamAdaptorBase() {}
virtual int Read(char *buf, int cb) = 0;
// ISequentialStream
HRESULT STDMETHODCALLTYPE Read(void __RPC_FAR *pv, ULONG cb, ULONG __RPC_FAR *pcbRead);
HRESULT STDMETHODCALLTYPE Write(const void __RPC_FAR *pv, ULONG cb, ULONG __RPC_FAR *pcbWritten) {return E_NOTIMPL;}
// IStream
HRESULT STDMETHODCALLTYPE Seek(LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER __RPC_FAR *plibNewPosition) {return E_NOTIMPL;}
HRESULT STDMETHODCALLTYPE SetSize(ULARGE_INTEGER libNewSize) {return E_NOTIMPL;}
HRESULT STDMETHODCALLTYPE CopyTo(IStream __RPC_FAR *pstm, ULARGE_INTEGER cb, ULARGE_INTEGER __RPC_FAR *pcbRead, ULARGE_INTEGER __RPC_FAR *pcbWritten) {return E_NOTIMPL;}
HRESULT STDMETHODCALLTYPE Commit(DWORD grfCommitFlags) {return E_NOTIMPL;}
HRESULT STDMETHODCALLTYPE Revert(void) {return E_NOTIMPL;}
HRESULT STDMETHODCALLTYPE LockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) {return E_NOTIMPL;}
HRESULT STDMETHODCALLTYPE UnlockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) {return E_NOTIMPL;}
HRESULT STDMETHODCALLTYPE Stat(STATSTG __RPC_FAR *pstatstg, DWORD grfStatFlag) {return E_NOTIMPL;}
HRESULT STDMETHODCALLTYPE Clone(IStream __RPC_FAR *__RPC_FAR *ppstm) {return E_NOTIMPL;}
};
class IStreamAdaptor : public IStreamAdaptorBase
{
private:
istream *m_is;
public:
IStreamAdaptor(istream *is);
~IStreamAdaptor();
int Read(char *buf, int cb);
};
class IwxStreamAdaptor : public IStreamAdaptorBase
{
private:
wxInputStream *m_is;
public:
IwxStreamAdaptor(wxInputStream *is);
~IwxStreamAdaptor();
int Read(char *buf, int cb);
};
class wxOwnedMemInputStream : public wxMemoryInputStream
{
public:
char *m_data;
wxOwnedMemInputStream(char *data, size_t len);
~wxOwnedMemInputStream();
};
wxAutoOleInterface<IHTMLTxtRange> wxieGetSelRange(IOleObject *oleObject);
#endif
+478
View File
@@ -0,0 +1,478 @@
/*
wxActiveX Library Licence, Version 3
====================================
Copyright (C) 2003 Lindsay Mathieson [, ...]
Everyone is permitted to copy and distribute verbatim copies
of this licence document, but changing it is not allowed.
wxActiveX LIBRARY LICENCE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public Licence as published by
the Free Software Foundation; either version 2 of the Licence, or (at
your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
General Public Licence for more details.
You should have received a copy of the GNU Library General Public Licence
along with this software, usually in a file named COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA.
EXCEPTION NOTICE
1. As a special exception, the copyright holders of this library give
permission for additional uses of the text contained in this release of
the library as licenced under the wxActiveX Library Licence, applying
either version 3 of the Licence, or (at your option) any later version of
the Licence as published by the copyright holders of version 3 of the
Licence document.
2. The exception is that you may use, copy, link, modify and distribute
under the user's own terms, binary object code versions of works based
on the Library.
3. If you copy code from files distributed under the terms of the GNU
General Public Licence or the GNU Library General Public Licence into a
copy of this library, as this licence permits, the exception does not
apply to the code that you add in this way. To avoid misleading anyone as
to the status of such modified files, you must delete this exception
notice from such code and/or adjust the licensing conditions notice
accordingly.
4. If you write modifications of your own for this library, it is your
choice whether to permit this exception to apply to your modifications.
If you do not wish that, you must delete the exception notice from such
code and/or adjust the licensing conditions notice accordingly.
*/
#include "IEHtmlWin.h"
#include <wx/strconv.h>
#include <wx/string.h>
#include <wx/event.h>
#include <wx/listctrl.h>
#include <wx/mstream.h>
#include <oleidl.h>
#include <winerror.h>
#include <exdispid.h>
#include <exdisp.h>
#include <olectl.h>
#include <Mshtml.h>
#include <sstream>
#include <IEHtmlStream.h>
using namespace std;
//////////////////////////////////////////////////////////////////////
// Stream adapters and such
HRESULT STDMETHODCALLTYPE IStreamAdaptorBase::Read(void __RPC_FAR *pv, ULONG cb, ULONG __RPC_FAR *pcbRead)
{
if (prepend.size() > 0)
{
int n = min(prepend.size(), cb);
prepend.copy((char *) pv, n);
prepend = prepend.substr(n);
if (pcbRead)
*pcbRead = n;
return S_OK;
};
int rc = Read((char *) pv, cb);
if (pcbRead)
*pcbRead = rc;
return S_OK;
};
DEFINE_OLE_TABLE(IStreamAdaptorBase)
OLE_IINTERFACE(IUnknown)
OLE_IINTERFACE(ISequentialStream)
OLE_IINTERFACE(IStream)
END_OLE_TABLE;
IStreamAdaptor::IStreamAdaptor(istream *is)
: IStreamAdaptorBase(), m_is(is)
{
wxASSERT(m_is != NULL);
}
IStreamAdaptor::~IStreamAdaptor()
{
delete m_is;
}
int IStreamAdaptor::Read(char *buf, int cb)
{
m_is->read(buf, cb);
return m_is->gcount();
}
IwxStreamAdaptor::IwxStreamAdaptor(wxInputStream *is)
: IStreamAdaptorBase(), m_is(is)
{
wxASSERT(m_is != NULL);
}
IwxStreamAdaptor::~IwxStreamAdaptor()
{
delete m_is;
}
// ISequentialStream
int IwxStreamAdaptor::Read(char *buf, int cb)
{
m_is->Read(buf, cb);
return m_is->LastRead();
};
wxOwnedMemInputStream::wxOwnedMemInputStream(char *data, size_t len)
: wxMemoryInputStream(data, len), m_data(data)
{}
wxOwnedMemInputStream::~wxOwnedMemInputStream()
{
free(m_data);
}
//////////////////////////////////////////////////////////////////////
BEGIN_EVENT_TABLE(wxIEHtmlWin, wxActiveX)
END_EVENT_TABLE()
static const CLSID CLSID_MozillaBrowser =
{ 0x1339B54C, 0x3453, 0x11D2,
{ 0x93, 0xB9, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00 } };
//#define PROGID "Shell.Explorer"
#define PROGID CLSID_WebBrowser
//#define PROGID CLSID_MozillaBrowser
//#define PROGID CLSID_HTMLDocument
//#define PROGID "MSCAL.Calendar"
//#define PROGID ""
//#define PROGID "SoftwareFX.ChartFX.20"
wxIEHtmlWin::wxIEHtmlWin(wxWindow * parent, wxWindowID id,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString& name) :
wxActiveX(parent, PROGID, id, pos, size, style, name)
{
SetupBrowser();
}
wxIEHtmlWin::~wxIEHtmlWin()
{
}
void wxIEHtmlWin::SetupBrowser()
{
HRESULT hret;
// Get IWebBrowser2 Interface
hret = m_webBrowser.QueryInterface(IID_IWebBrowser2, m_ActiveX);
assert(SUCCEEDED(hret));
// web browser setup
m_webBrowser->put_MenuBar(VARIANT_FALSE);
m_webBrowser->put_AddressBar(VARIANT_FALSE);
m_webBrowser->put_StatusBar(VARIANT_FALSE);
m_webBrowser->put_ToolBar(VARIANT_FALSE);
m_webBrowser->put_RegisterAsBrowser(VARIANT_TRUE);
m_webBrowser->put_RegisterAsDropTarget(VARIANT_TRUE);
m_webBrowser->Navigate( L"about:blank", NULL, NULL, NULL, NULL );
}
void wxIEHtmlWin::SetEditMode(bool seton)
{
m_bAmbientUserMode = ! seton;
AmbientPropertyChanged(DISPID_AMBIENT_USERMODE);
};
bool wxIEHtmlWin::GetEditMode()
{
return ! m_bAmbientUserMode;
};
void wxIEHtmlWin::SetCharset(const wxString& charset)
{
// HTML Document ?
IDispatch *pDisp = NULL;
HRESULT hret = m_webBrowser->get_Document(&pDisp);
wxAutoOleInterface<IDispatch> disp(pDisp);
if (disp.Ok())
{
wxAutoOleInterface<IHTMLDocument2> doc(IID_IHTMLDocument2, disp);
if (doc.Ok())
doc->put_charset((BSTR) (const wchar_t *) charset.wc_str(wxConvUTF8));
//doc->put_charset((BSTR) wxConvUTF8.cMB2WC(charset).data());
};
};
void wxIEHtmlWin::LoadUrl(const wxString& url)
{
VARIANTARG navFlag, targetFrame, postData, headers;
navFlag.vt = VT_EMPTY;
navFlag.vt = VT_I2;
navFlag.iVal = navNoReadFromCache;
targetFrame.vt = VT_EMPTY;
postData.vt = VT_EMPTY;
headers.vt = VT_EMPTY;
HRESULT hret = 0;
hret = m_webBrowser->Navigate((BSTR) (const wchar_t *) url.wc_str(wxConvUTF8),
&navFlag, &targetFrame, &postData, &headers);
};
bool wxIEHtmlWin::LoadString(const wxString& html)
{
char *data = NULL;
size_t len = html.length();
#ifdef UNICODE
len *= 2;
#endif
data = (char *) malloc(len);
memcpy(data, html.c_str(), len);
return LoadStream(new wxOwnedMemInputStream(data, len));
};
bool wxIEHtmlWin::LoadStream(IStreamAdaptorBase *pstrm)
{
// need to prepend this as poxy MSHTML will not recognise a HTML comment
// as starting a html document and treats it as plain text
// Does nayone know how to force it to html mode ?
pstrm->prepend = "<html>";
// strip leading whitespace as it can confuse MSHTML
wxAutoOleInterface<IStream> strm(pstrm);
// Document Interface
IDispatch *pDisp = NULL;
HRESULT hret = m_webBrowser->get_Document(&pDisp);
if (! pDisp)
return false;
wxAutoOleInterface<IDispatch> disp(pDisp);
// get IPersistStreamInit
wxAutoOleInterface<IPersistStreamInit>
pPersistStreamInit(IID_IPersistStreamInit, disp);
if (pPersistStreamInit.Ok())
{
HRESULT hr = pPersistStreamInit->InitNew();
if (SUCCEEDED(hr))
hr = pPersistStreamInit->Load(strm);
return SUCCEEDED(hr);
}
else
return false;
};
bool wxIEHtmlWin::LoadStream(istream *is)
{
// wrap reference around stream
IStreamAdaptor *pstrm = new IStreamAdaptor(is);
pstrm->AddRef();
return LoadStream(pstrm);
};
bool wxIEHtmlWin::LoadStream(wxInputStream *is)
{
// wrap reference around stream
IwxStreamAdaptor *pstrm = new IwxStreamAdaptor(is);
pstrm->AddRef();
return LoadStream(pstrm);
};
bool wxIEHtmlWin::GoBack()
{
HRESULT hret = 0;
hret = m_webBrowser->GoBack();
return hret == S_OK;
}
bool wxIEHtmlWin::GoForward()
{
HRESULT hret = 0;
hret = m_webBrowser->GoForward();
return hret == S_OK;
}
bool wxIEHtmlWin::GoHome()
{
try
{
CallMethod("GoHome");
return true;
}
catch(exception&)
{
return false;
};
}
bool wxIEHtmlWin::GoSearch()
{
HRESULT hret = 0;
hret = m_webBrowser->GoSearch();
return hret == S_OK;
}
bool wxIEHtmlWin::Refresh(wxIEHtmlRefreshLevel level)
{
VARIANTARG levelArg;
HRESULT hret = 0;
levelArg.vt = VT_I2;
levelArg.iVal = level;
hret = m_webBrowser->Refresh2(&levelArg);
return hret == S_OK;
}
bool wxIEHtmlWin::Stop()
{
HRESULT hret = 0;
hret = m_webBrowser->Stop();
return hret == S_OK;
}
///////////////////////////////////////////////////////////////////////////////
static wxAutoOleInterface<IHTMLSelectionObject> GetSelObject(IOleObject *oleObject)
{
// Query for IWebBrowser interface
wxAutoOleInterface<IWebBrowser2> wb(IID_IWebBrowser2, oleObject);
if (! wb.Ok())
return wxAutoOleInterface<IHTMLSelectionObject>();
IDispatch *iDisp = NULL;
HRESULT hr = wb->get_Document(&iDisp);
if (hr != S_OK)
return wxAutoOleInterface<IHTMLSelectionObject>();
// Query for Document Interface
wxAutoOleInterface<IHTMLDocument2> hd(IID_IHTMLDocument2, iDisp);
iDisp->Release();
if (! hd.Ok())
return wxAutoOleInterface<IHTMLSelectionObject>();
IHTMLSelectionObject *_so = NULL;
hr = hd->get_selection(&_so);
// take ownership of selection object
wxAutoOleInterface<IHTMLSelectionObject> so(_so);
return so;
};
wxAutoOleInterface<IHTMLTxtRange> wxieGetSelRange(IOleObject *oleObject)
{
wxAutoOleInterface<IHTMLTxtRange> tr;
wxAutoOleInterface<IHTMLSelectionObject> so(GetSelObject(oleObject));
if (! so)
return tr;
IDispatch *iDisp = NULL;
HRESULT hr = so->createRange(&iDisp);
if (hr != S_OK)
return tr;
// Query for IHTMLTxtRange interface
tr.QueryInterface(IID_IHTMLTxtRange, iDisp);
iDisp->Release();
return tr;
};
wxString wxIEHtmlWin::GetStringSelection(bool asHTML)
{
wxAutoOleInterface<IHTMLTxtRange> tr(wxieGetSelRange(m_oleObject));
if (! tr)
return wxEmptyString;
BSTR text = NULL;
HRESULT hr = E_FAIL;
if (asHTML)
hr = tr->get_htmlText(&text);
else
hr = tr->get_text(&text);
if (hr != S_OK)
return wxEmptyString;
wxString s = text;
SysFreeString(text);
return s;
};
wxString wxIEHtmlWin::GetText(bool asHTML)
{
if (! m_webBrowser.Ok())
return wxEmptyString;
// get document dispatch interface
IDispatch *iDisp = NULL;
HRESULT hr = m_webBrowser->get_Document(&iDisp);
if (hr != S_OK)
return wxEmptyString;
// Query for Document Interface
wxAutoOleInterface<IHTMLDocument2> hd(IID_IHTMLDocument2, iDisp);
iDisp->Release();
if (! hd.Ok())
return wxEmptyString;
// get body element
IHTMLElement *_body = NULL;
hd->get_body(&_body);
if (! _body)
return wxEmptyString;
wxAutoOleInterface<IHTMLElement> body(_body);
// get inner text
BSTR text = NULL;
hr = E_FAIL;
if (asHTML)
hr = body->get_innerHTML(&text);
else
hr = body->get_innerText(&text);
if (hr != S_OK)
return wxEmptyString;
wxString s = text;
SysFreeString(text);
return s;
};
+120
View File
@@ -0,0 +1,120 @@
/*
wxActiveX Library Licence, Version 3
====================================
Copyright (C) 2003 Lindsay Mathieson [, ...]
Everyone is permitted to copy and distribute verbatim copies
of this licence document, but changing it is not allowed.
wxActiveX LIBRARY LICENCE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public Licence as published by
the Free Software Foundation; either version 2 of the Licence, or (at
your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
General Public Licence for more details.
You should have received a copy of the GNU Library General Public Licence
along with this software, usually in a file named COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA.
EXCEPTION NOTICE
1. As a special exception, the copyright holders of this library give
permission for additional uses of the text contained in this release of
the library as licenced under the wxActiveX Library Licence, applying
either version 3 of the Licence, or (at your option) any later version of
the Licence as published by the copyright holders of version 3 of the
Licence document.
2. The exception is that you may use, copy, link, modify and distribute
under the user's own terms, binary object code versions of works based
on the Library.
3. If you copy code from files distributed under the terms of the GNU
General Public Licence or the GNU Library General Public Licence into a
copy of this library, as this licence permits, the exception does not
apply to the code that you add in this way. To avoid misleading anyone as
to the status of such modified files, you must delete this exception
notice from such code and/or adjust the licensing conditions notice
accordingly.
4. If you write modifications of your own for this library, it is your
choice whether to permit this exception to apply to your modifications.
If you do not wish that, you must delete the exception notice from such
code and/or adjust the licensing conditions notice accordingly.
*/
/*! \file iehtmlwin.h
\brief implements wxIEHtmlWin window class
*/
#ifndef _IEHTMLWIN_H_
#define _IEHTMLWIN_H_
#pragma warning( disable : 4101 4786)
#pragma warning( disable : 4786)
#include <wx/setup.h>
#include <wx/wx.h>
#include <exdisp.h>
#include <iostream>
using namespace std;
#include "wxactivex.h"
enum wxIEHtmlRefreshLevel
{
wxIEHTML_REFRESH_NORMAL = 0,
wxIEHTML_REFRESH_IFEXPIRED = 1,
wxIEHTML_REFRESH_CONTINUE = 2,
wxIEHTML_REFRESH_COMPLETELY = 3
};
class IStreamAdaptorBase;
class wxIEHtmlWin : public wxActiveX
{
public:
wxIEHtmlWin(wxWindow * parent, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxPanelNameStr);
virtual ~wxIEHtmlWin();
void LoadUrl(const wxString& url);
bool LoadString(const wxString& html);
bool LoadStream(istream *strm);
bool LoadStream(wxInputStream *is);
void SetCharset(const wxString& charset);
void SetEditMode(bool seton);
bool GetEditMode();
wxString GetStringSelection(bool asHTML = false);
wxString GetText(bool asHTML = false);
bool GoBack();
bool GoForward();
bool GoHome();
bool GoSearch();
bool Refresh(wxIEHtmlRefreshLevel level);
bool Stop();
DECLARE_EVENT_TABLE();
protected:
void SetupBrowser();
bool LoadStream(IStreamAdaptorBase *pstrm);
wxAutoOleInterface<IWebBrowser2> m_webBrowser;
};
#endif /* _IEHTMLWIN_H_ */
@@ -0,0 +1,6 @@
The contents of this dir are from the 9-Jan-2004 version of wxie.zip
downloaded from:
http://members.optusnet.com.au/~blackpaw1/wxactivex.html
@@ -0,0 +1,205 @@
# Doxyfile 1.3-rc2
#---------------------------------------------------------------------------
# General configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = wxActiveX
PROJECT_NUMBER =
OUTPUT_DIRECTORY =
OUTPUT_LANGUAGE = English
EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
SHORT_NAMES = NO
HIDE_SCOPE_NAMES = NO
VERBATIM_HEADERS = YES
SHOW_INCLUDE_FILES = YES
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = YES
INHERIT_DOCS = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = NO
DISTRIBUTE_GROUP_DOC = YES
TAB_SIZE = 8
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ALIASES =
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
SHOW_USED_FILES = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_FORMAT = "$file($line): $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = .\wxactivex.h .\iehtmlwin.h
FILE_PATTERNS = *.cpp \
*.c \
*.h \
*.cxx \
*.idl
RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 4
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = doxydoc
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = no
CHM_FILE = wxactivex.chm
HHC_LOCATION = hhc.exe
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = YES
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_SCHEMA =
XML_DTD =
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
CGI_NAME = search.cgi
CGI_URL =
DOC_URL =
DOC_ABSPATH =
BIN_ABSPATH = /usr/local/bin/
EXT_DOC_PATHS =
@@ -0,0 +1,22 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Annotated Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX Data Structures</h1>Here are the data structures with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="structNS__wxActiveX_1_1less__wxStringI.html">NS_wxActiveX::less_wxStringI</a></td><td class="indexvalue">STL utilty class</td></tr>
<tr><td class="indexkey"><a class="el" href="classwxActiveX.html">wxActiveX</a></td><td class="indexvalue">Main class for embedding a ActiveX control</td></tr>
<tr><td class="indexkey"><a class="el" href="classwxActiveX_1_1FuncX.html">wxActiveX::FuncX</a></td><td class="indexvalue">Type &amp; Parameter info for Events and Methods</td></tr>
<tr><td class="indexkey"><a class="el" href="classwxActiveX_1_1ParamX.html">wxActiveX::ParamX</a></td><td class="indexvalue">General parameter and return type infoformation for Events, Properties and Methods</td></tr>
<tr><td class="indexkey"><a class="el" href="classwxActiveX_1_1PropX.html">wxActiveX::PropX</a></td><td class="indexvalue">Type info for properties</td></tr>
<tr><td class="indexkey"><a class="el" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt; I &gt;</a></td><td class="indexvalue">Template class for smart interface handling</td></tr>
</table>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Alphabetical index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX Data Structure Index</h1><table align=center width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;L&nbsp;&nbsp;</div></td></tr></table>
</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;W&nbsp;&nbsp;</div></td></tr></table>
</td><td><a class="el" href="classwxActiveX_1_1FuncX.html">wxActiveX::FuncX</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classwxActiveX_1_1PropX.html">wxActiveX::PropX</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structNS__wxActiveX_1_1less__wxStringI.html">less_wxStringI</a> (<a class="el" href="namespaceNS__wxActiveX.html">NS_wxActiveX</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classwxActiveX.html">wxActiveX</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classwxActiveX_1_1ParamX.html">wxActiveX::ParamX</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classwxAutoOleInterface.html">wxAutoOleInterface</a>&nbsp;&nbsp;&nbsp;</td></tr></table><hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,474 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>wxActiveX class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX Class Reference</h1><code>#include &lt;<a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Main class for embedding a ActiveX control.
<p>
Use by itself or derive from it <dl compact><dt><b>Note:</b></dt><dd>The utility program (wxie) can generate a list of events, methods &amp; properties for a control. First display the control (File|Display), then get the type info (ActiveX|Get Type Info) - these are copied to the clipboard. Eventually this will be expanded to autogenerate wxWindows source files for a control with all methods etc encapsulated. </dd></dl>
<dl compact><dt><b>Usage: </b></dt><dd>construct using a ProgId or class id <div class="fragment"><pre> <span class="keyword">new</span> <a class="code" href="classwxActiveX.html#a0">wxActiveX</a>(parent, CLSID_WebBrowser, id, pos, size, style, name)
</pre></div><div class="fragment"><pre> <span class="keyword">new</span> <a class="code" href="classwxActiveX.html#a0">wxActiveX</a>(parent, <span class="stringliteral">"ShockwaveFlash.ShockwaveFlash"</span>, id, pos, size, style, name)
</pre></div></dd></dl>
<dl compact><dt><b>Properties</b></dt><dd>Properties can be set using <code><a class="el" href="classwxActiveX.html#a11">SetProp()</a></code> and set/retrieved using <code><a class="el" href="classwxActiveX.html#a13">Prop()</a></code> <div class="fragment"><pre> <a class="code" href="classwxActiveX.html#a11">SetProp</a>(name, wxVariant(x))
</pre></div>or <div class="fragment"><pre> wxString <a class="code" href="classwxActiveX.html#a13">Prop</a>(<span class="stringliteral">"&lt;name&gt;"</span>) = x
</pre></div><div class="fragment"><pre> wxString result = <a class="code" href="classwxActiveX.html#a13">Prop</a>(<span class="stringliteral">"&lt;name&gt;"</span>)
</pre></div><div class="fragment"><pre> flash_ctl.Prop(<span class="stringliteral">"movie"</span>) = <span class="stringliteral">"file:///movies/test.swf"</span>;
</pre></div><div class="fragment"><pre> flash_ctl.Prop(<span class="stringliteral">"Playing"</span>) = <span class="keyword">false</span>;
</pre></div><div class="fragment"><pre> wxString current_movie = flash_ctl.Prop(<span class="stringliteral">"movie"</span>);
</pre></div></dd></dl>
<dl compact><dt><b>Methods</b></dt><dd>Methods are invoked with <code><a class="el" href="classwxActiveX.html#a26">CallMethod()</a></code> <div class="fragment"><pre> wxVariant result = <a class="code" href="classwxActiveX.html#a26">CallMethod</a>(<span class="stringliteral">"&lt;name&gt;"</span>, args, nargs = -1)
</pre></div><div class="fragment"><pre> wxVariant args[] = {0L, <span class="stringliteral">"file:///e:/dev/wxie/bug-zap.swf"</span>};
wxVariant result = X-&gt;CallMethod(<span class="stringliteral">"LoadMovie"</span>, args);
</pre></div></dd></dl>
<dl compact><dt><b>events</b></dt><dd>respond to events with the <code><a class="el" href="wxactivex_8h.html#a10">EVT_ACTIVEX(controlId, eventName, handler)</a></code> &amp; <code><a class="el" href="wxactivex_8h.html#a11">EVT_ACTIVEX_DISPID(controlId, eventDispId, handler)</a></code> macros <div class="fragment"><pre>
BEGIN_EVENT_TABLE(wxIEFrame, wxFrame)
<a class="code" href="wxactivex_8h.html#a11">EVT_ACTIVEX_DISPID</a>(ID_MSHTML, DISPID_STATUSTEXTCHANGE, OnMSHTMLStatusTextChangeX)
<a class="code" href="wxactivex_8h.html#a10">EVT_ACTIVEX</a>(ID_MSHTML, <span class="stringliteral">"BeforeNavigate2"</span>, OnMSHTMLBeforeNavigate2X)
<a class="code" href="wxactivex_8h.html#a10">EVT_ACTIVEX</a>(ID_MSHTML, <span class="stringliteral">"TitleChange"</span>, OnMSHTMLTitleChangeX)
<a class="code" href="wxactivex_8h.html#a10">EVT_ACTIVEX</a>(ID_MSHTML, <span class="stringliteral">"NewWindow2"</span>, OnMSHTMLNewWindow2X)
<a class="code" href="wxactivex_8h.html#a10">EVT_ACTIVEX</a>(ID_MSHTML, <span class="stringliteral">"ProgressChange"</span>, OnMSHTMLProgressChangeX)
END_EVENT_TABLE()
</pre></div></dd></dl>
<p>
<p>
Definition at line <a class="el" href="wxactivex_8h-source.html#l00329">329</a> of file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>.<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="a0" doxytag="wxActiveX::wxActiveX"></a>
&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a0">wxActiveX</a> (wxWindow *parent, REFCLSID clsid, wxWindowID id=-1, const wxPoint &amp;pos=wxDefaultPosition, const wxSize &amp;size=wxDefaultSize, long style=0, const wxString &amp;name=wxPanelNameStr)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Create using clsid.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a1" doxytag="wxActiveX::wxActiveX"></a>
&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a1">wxActiveX</a> (wxWindow *parent, wxString progId, wxWindowID id=-1, const wxPoint &amp;pos=wxDefaultPosition, const wxSize &amp;size=wxDefaultSize, long style=0, const wxString &amp;name=wxPanelNameStr)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>create using progid.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a3" doxytag="wxActiveX::GetEventCount"></a>
int&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a3">GetEventCount</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Number of events defined for this control.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="classwxActiveX_1_1FuncX.html">FuncX</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a4">GetEventDesc</a> (int idx) const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>returns event description by index.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a5" doxytag="wxActiveX::GetPropCount"></a>
int&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a5">GetPropCount</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Number of properties defined for this control.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="classwxActiveX_1_1PropX.html">PropX</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a6">GetPropDesc</a> (int idx) const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>returns property description by index.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="classwxActiveX_1_1PropX.html">PropX</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a7">GetPropDesc</a> (wxString name) const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>returns property description by name.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a8" doxytag="wxActiveX::GetMethodCount"></a>
int&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a8">GetMethodCount</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Number of methods defined for this control.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="classwxActiveX_1_1FuncX.html">FuncX</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a9">GetMethodDesc</a> (int idx) const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>returns method description by name.</em> <a href="#a9"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="classwxActiveX_1_1FuncX.html">FuncX</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a10">GetMethodDesc</a> (wxString name) const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>returns method description by name.</em> <a href="#a10"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a11" doxytag="wxActiveX::SetProp"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a11">SetProp</a> (MEMBERID name, VARIANTARG &amp;value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Set property VARIANTARG value by MEMBERID.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a12" doxytag="wxActiveX::SetProp"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a12">SetProp</a> (const wxString &amp;name, const wxVariant &amp;value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Set property using wxVariant by name.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>wxPropertySetter&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a13">Prop</a> (wxString name)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Generic Get/Set Property by name. Automatically handles most types.</em> <a href="#a13"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>wxVariant&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#a26">CallMethod</a> (wxString name, wxVariant args[], int nargs=-1)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Call a method of the ActiveX control. Automatically handles most types.</em> <a href="#a26"></a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Related Functions</h2></td></tr>
<tr><td colspan=2>(Note that these are not member functions.)<br><br></td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#k0">MSWVariantToVariant</a> (VARIANTARG &amp;va, wxVariant &amp;vx)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Convert MSW VARIANTARG to wxVariant. Handles basic types, need to add:<ul>
<li>VT_ARRAY | VT_*</li><li>better support for VT_UNKNOWN (currently treated as void *)</li><li>better support for VT_DISPATCH (currently treated as void *).</li></ul>
</em> <a href="#k0"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html#k1">VariantToMSWVariant</a> (const wxVariant &amp;vx, VARIANTARG &amp;va)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Convert wxVariant to MSW VARIANTARG. Handles basic types, need to add:<ul>
<li>VT_ARRAY | VT_*</li><li>better support for VT_UNKNOWN (currently treated as void *)</li><li>better support for VT_DISPATCH (currently treated as void *).</li></ul>
</em> <a href="#k1"></a><em></em></font><br><br></td></tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a4" doxytag="wxActiveX::GetEventDesc"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> const <a class="el" href="classwxActiveX_1_1FuncX.html">FuncX</a>&amp; wxActiveX::GetEventDesc </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">int&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>idx</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap> const</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
returns event description by index.
<p>
throws exception for invalid index </td>
</tr>
</table>
<a name="a6" doxytag="wxActiveX::GetPropDesc"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> const <a class="el" href="classwxActiveX_1_1PropX.html">PropX</a>&amp; wxActiveX::GetPropDesc </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">int&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>idx</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap> const</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
returns property description by index.
<p>
throws exception for invalid index </td>
</tr>
</table>
<a name="a7" doxytag="wxActiveX::GetPropDesc"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> const <a class="el" href="classwxActiveX_1_1PropX.html">PropX</a>&amp; wxActiveX::GetPropDesc </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">wxString&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>name</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap> const</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
returns property description by name.
<p>
throws exception for invalid name </td>
</tr>
</table>
<a name="a9" doxytag="wxActiveX::GetMethodDesc"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> const <a class="el" href="classwxActiveX_1_1FuncX.html">FuncX</a>&amp; wxActiveX::GetMethodDesc </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">int&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>idx</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap> const</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
returns method description by name.
<p>
throws exception for invalid index </td>
</tr>
</table>
<a name="a10" doxytag="wxActiveX::GetMethodDesc"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> const <a class="el" href="classwxActiveX_1_1FuncX.html">FuncX</a>&amp; wxActiveX::GetMethodDesc </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">wxString&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>name</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap> const</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
returns method description by name.
<p>
throws exception for invalid name </td>
</tr>
</table>
<a name="a13" doxytag="wxActiveX::Prop"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> wxPropertySetter wxActiveX::Prop </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">wxString&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>name</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Generic Get/Set Property by name. Automatically handles most types.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>name</em>&nbsp;</td><td>Property name to read/set </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>wxPropertySetter, which has overloads for setting/getting the property </dd></dl>
<p>
<dl compact><dt><b>Usage:</b></dt><dd><ul>
<li>Prop("&lt;name&gt;") = &lt;value&gt;</li><li>var = Prop("&lt;name&gt;")</li><li>e.g:<ul>
<li><div class="fragment"><pre> flash_ctl.Prop(<span class="stringliteral">"movie"</span>) = <span class="stringliteral">"file:///movies/test.swf"</span>;
</pre></div></li><li><div class="fragment"><pre> flash_ctl.Prop(<span class="stringliteral">"Playing"</span>) = <span class="keyword">false</span>;
</pre></div></li><li><div class="fragment"><pre> wxString current_movie = flash_ctl.Prop(<span class="stringliteral">"movie"</span>);
</pre></div></li></ul>
</li></ul>
</dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>raises</em>&nbsp;</td><td>exception if &lt;name&gt; is invalid </td></tr>
</table>
</dl>
<dl compact><dt><b>Note:</b></dt><dd>Have to add a few more type conversions yet ... </dd></dl>
<p>
Definition at line <a class="el" href="wxactivex_8h-source.html#l00458">458</a> of file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>. </td>
</tr>
</table>
<a name="a26" doxytag="wxActiveX::CallMethod"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> wxVariant wxActiveX::CallMethod </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">wxString&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>name</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>wxVariant&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>args</em>[], </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>nargs</em> = -1</td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Call a method of the ActiveX control. Automatically handles most types.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>name</em>&nbsp;</td><td>name of method to call </td></tr>
<tr><td valign=top><em>args</em>&nbsp;</td><td>array of wxVariant's, defaults to NULL (no args) </td></tr>
<tr><td valign=top><em>nargs</em>&nbsp;</td><td>number of arguments passed via args. Defaults to actual number of args for the method </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>wxVariant </dd></dl>
<p>
<dl compact><dt><b>Usage:</b></dt><dd><ul>
<li>result = CallMethod("&lt;name&gt;", args, nargs)</li><li>e.g.</li><li><div class="fragment"><pre>
wxVariant args[] = {0L, <span class="stringliteral">"file:///e:/dev/wxie/bug-zap.swf"</span>};
wxVariant result = X-&gt;CallMethod(<span class="stringliteral">"LoadMovie"</span>, args);
</pre></div></li></ul>
</dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>raises</em>&nbsp;</td><td>exception if &lt;name&gt; is invalid </td></tr>
</table>
</dl>
<dl compact><dt><b>Note:</b></dt><dd>Since wxVariant has built in type conversion, most the std types can be passed easily </dd></dl>
</td>
</tr>
</table>
<hr><h2>Friends And Related Function Documentation</h2>
<a name="k0" doxytag="wxActiveX::MSWVariantToVariant"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> bool MSWVariantToVariant </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">VARIANTARG &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>va</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>wxVariant &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>vx</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [related]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Convert MSW VARIANTARG to wxVariant. Handles basic types, need to add:<ul>
<li>VT_ARRAY | VT_*</li><li>better support for VT_UNKNOWN (currently treated as void *)</li><li>better support for VT_DISPATCH (currently treated as void *).</li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>va</em>&nbsp;</td><td>VARAIANTARG to convert from </td></tr>
<tr><td valign=top><em>vx</em>&nbsp;</td><td>Destination wxVariant </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>success/failure (true/false) </dd></dl>
</td>
</tr>
</table>
<a name="k1" doxytag="wxActiveX::VariantToMSWVariant"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> bool VariantToMSWVariant </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const wxVariant &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>vx</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>VARIANTARG &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>va</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [related]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Convert wxVariant to MSW VARIANTARG. Handles basic types, need to add:<ul>
<li>VT_ARRAY | VT_*</li><li>better support for VT_UNKNOWN (currently treated as void *)</li><li>better support for VT_DISPATCH (currently treated as void *).</li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>vx</em>&nbsp;</td><td>wxVariant to convert from </td></tr>
<tr><td valign=top><em>va</em>&nbsp;</td><td>Destination VARIANTARG </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>success/failure (true/false) </dd></dl>
</td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="wxactivex_8h-source.html">wxactivex.h</a></ul>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,28 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>wxActiveX::FuncX class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX::FuncX Class Reference</h1><code>#include &lt;<a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Type &amp; Parameter info for Events and Methods.
<p>
refer to FUNCDESC in MSDN
<p>
<p>
Definition at line <a class="el" href="wxactivex_8h-source.html#l00350">350</a> of file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>.<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="wxactivex_8h-source.html">wxactivex.h</a></ul>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,28 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>wxActiveX::ParamX class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX::ParamX Class Reference</h1><code>#include &lt;<a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
General parameter and return type infoformation for Events, Properties and Methods.
<p>
refer to ELEMDESC, IDLDESC in MSDN
<p>
<p>
Definition at line <a class="el" href="wxactivex_8h-source.html#l00333">333</a> of file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>.<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="wxactivex_8h-source.html">wxactivex.h</a></ul>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>wxActiveX::PropX class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX::PropX Class Reference</h1><code>#include &lt;<a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Type info for properties.
<p>
<p>
Definition at line <a class="el" href="wxactivex_8h-source.html#l00362">362</a> of file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>.<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="wxactivex_8h-source.html">wxactivex.h</a></ul>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,79 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title> TemplatewxAutoOleInterface&lt; I &gt; class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxAutoOleInterface&lt; I &gt; Class Template Reference</h1><code>#include &lt;<a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class I&gt;<br>
class wxAutoOleInterface&lt; I &gt;</h3>
Template class for smart interface handling.
<p>
<ul>
<li>Automatically dereferences ole interfaces</li><li>Smart Copy Semantics</li><li>Can Create Interfaces</li><li>Can query for other interfaces </li></ul>
<p>
<p>
Definition at line <a class="el" href="wxactivex_8h-source.html#l00045">45</a> of file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>.<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="a0" doxytag="wxAutoOleInterface::wxAutoOleInterface"></a>
&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a0">wxAutoOleInterface</a> (I *pInterface=NULL)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>takes ownership of an existing interface Assumed to already have a AddRef() applied</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a1" doxytag="wxAutoOleInterface::wxAutoOleInterface"></a>
&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a1">wxAutoOleInterface</a> (REFIID riid, IUnknown *pUnk)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>queries for an interface</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a2" doxytag="wxAutoOleInterface::wxAutoOleInterface"></a>
&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a2">wxAutoOleInterface</a> (REFIID riid, IDispatch *pDispatch)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>queries for an interface</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a3" doxytag="wxAutoOleInterface::wxAutoOleInterface"></a>
&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a3">wxAutoOleInterface</a> (REFCLSID clsid, REFIID riid)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates an Interface.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a4" doxytag="wxAutoOleInterface::wxAutoOleInterface"></a>
&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a4">wxAutoOleInterface</a> (const wxAutoOleInterface&lt; I &gt; &amp;ti)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>copy constructor</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a5" doxytag="wxAutoOleInterface::operator="></a>
wxAutoOleInterface&lt; I &gt; &amp;&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a5">operator=</a> (const wxAutoOleInterface&lt; I &gt; &amp;ti)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>assignment operator</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a6" doxytag="wxAutoOleInterface::operator="></a>
wxAutoOleInterface&lt; I &gt; &amp;&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a6">operator=</a> (I *&amp;ti)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>takes ownership of an existing interface Assumed to already have a AddRef() applied</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a7" doxytag="wxAutoOleInterface::~wxAutoOleInterface"></a>
&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a7">~wxAutoOleInterface</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>invokes <a class="el" href="classwxAutoOleInterface.html#a8">Free()</a></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a8" doxytag="wxAutoOleInterface::Free"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a8">Free</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Releases interface (i.e decrements refCount).</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a9" doxytag="wxAutoOleInterface::QueryInterface"></a>
HRESULT&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a9">QueryInterface</a> (REFIID riid, IUnknown *pUnk)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>queries for an interface</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a10" doxytag="wxAutoOleInterface::CreateInstance"></a>
HRESULT&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a10">CreateInstance</a> (REFCLSID clsid, REFIID riid)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Create a Interface instance.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a11" doxytag="wxAutoOleInterface::operator I *"></a>
&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a11">operator I *</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>returns the interface pointer</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a12" doxytag="wxAutoOleInterface::operator->"></a>
I *&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a12">operator-&gt;</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>returns the dereferenced interface pointer</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a13" doxytag="wxAutoOleInterface::GetRef"></a>
I **&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a13">GetRef</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>returns a pointer to the interface pointer</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a14" doxytag="wxAutoOleInterface::Ok"></a>
bool&nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html#a14">Ok</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>returns true if we have a valid interface pointer</em></font><br><br></td></tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="wxactivex_8h-source.html">wxactivex.h</a></ul>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,49 @@
H1 { text-align: center; }
CAPTION { font-weight: bold }
A.qindex {}
A.qindexRef {}
A.el { text-decoration: none; font-weight: bold }
A.elRef { font-weight: bold }
A.code { text-decoration: none; font-weight: normal; color: #4444ee }
A.codeRef { font-weight: normal; color: #4444ee }
A:hover { text-decoration: none; background-color: #f2f2ff }
DL.el { margin-left: -1cm }
DIV.fragment { width: 100%; border: none; background-color: #eeeeee }
DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
TD.md { background-color: #f2f2ff; font-weight: bold; }
TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; }
TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; }
DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold }
DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
BODY { background: white; color: black }
TD.indexkey {
background-color: #eeeeff;
font-weight: bold;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px
}
TD.indexvalue {
background-color: #eeeeff;
font-style: italic;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px
}
span.keyword { color: #008000 }
span.keywordtype { color: #604020 }
span.keywordflow { color: #e08000 }
span.comment { color: #800000 }
span.preprocessor { color: #806020 }
span.stringliteral { color: #002080 }
span.charliteral { color: #008080 }
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -0,0 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>File Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX File List</h1>Here is a list of all documented files with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="iehtmlwin_8h.html">iehtmlwin.h</a> <a href="iehtmlwin_8h-source.html">[code]</a></td><td class="indexvalue">Implements wxIEHtmlWin window class</td></tr>
<tr><td class="indexkey"><a class="el" href="wxactivex_8h.html">wxactivex.h</a> <a href="wxactivex_8h-source.html">[code]</a></td><td class="indexvalue">Implements <a class="el" href="classwxActiveX.html">wxActiveX</a> window class and OLE tools</td></tr>
</table>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,38 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Compound Member Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX Data Fields</h1>Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:<ul>
<li>CallMethod()
: <a class="el" href="classwxActiveX.html#a26">wxActiveX</a><li>CreateInstance()
: <a class="el" href="classwxAutoOleInterface.html#a10">wxAutoOleInterface&lt; I &gt;</a><li>Free()
: <a class="el" href="classwxAutoOleInterface.html#a8">wxAutoOleInterface&lt; I &gt;</a><li>GetEventCount()
: <a class="el" href="classwxActiveX.html#a3">wxActiveX</a><li>GetEventDesc()
: <a class="el" href="classwxActiveX.html#a4">wxActiveX</a><li>GetMethodCount()
: <a class="el" href="classwxActiveX.html#a8">wxActiveX</a><li>GetMethodDesc()
: <a class="el" href="classwxActiveX.html#a10">wxActiveX</a><li>GetPropCount()
: <a class="el" href="classwxActiveX.html#a5">wxActiveX</a><li>GetPropDesc()
: <a class="el" href="classwxActiveX.html#a7">wxActiveX</a><li>GetRef()
: <a class="el" href="classwxAutoOleInterface.html#a13">wxAutoOleInterface&lt; I &gt;</a><li>MSWVariantToVariant()
: <a class="el" href="classwxActiveX.html#k0">wxActiveX</a><li>Ok()
: <a class="el" href="classwxAutoOleInterface.html#a14">wxAutoOleInterface&lt; I &gt;</a><li>operator I *()
: <a class="el" href="classwxAutoOleInterface.html#a11">wxAutoOleInterface&lt; I &gt;</a><li>operator-&gt;()
: <a class="el" href="classwxAutoOleInterface.html#a12">wxAutoOleInterface&lt; I &gt;</a><li>operator=()
: <a class="el" href="classwxAutoOleInterface.html#a6">wxAutoOleInterface&lt; I &gt;</a><li>Prop()
: <a class="el" href="classwxActiveX.html#a13">wxActiveX</a><li>QueryInterface()
: <a class="el" href="classwxAutoOleInterface.html#a9">wxAutoOleInterface&lt; I &gt;</a><li>SetProp()
: <a class="el" href="classwxActiveX.html#a12">wxActiveX</a><li>VariantToMSWVariant()
: <a class="el" href="classwxActiveX.html#k1">wxActiveX</a><li>wxActiveX()
: <a class="el" href="classwxActiveX.html#a1">wxActiveX</a><li>wxAutoOleInterface()
: <a class="el" href="classwxAutoOleInterface.html#a4">wxAutoOleInterface&lt; I &gt;</a><li>~wxAutoOleInterface()
: <a class="el" href="classwxAutoOleInterface.html#a7">wxAutoOleInterface&lt; I &gt;</a></ul>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,20 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>File Member Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX Globals</h1>Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:<ul>
<li>EVT_ACTIVEX
: <a class="el" href="wxactivex_8h.html#a10">wxactivex.h</a><li>EVT_ACTIVEX_DISPID
: <a class="el" href="wxactivex_8h.html#a11">wxactivex.h</a><li>GetIIDName()
: <a class="el" href="wxactivex_8h.html#a14">wxactivex.h</a><li>OLEHResultToString()
: <a class="el" href="wxactivex_8h.html#a13">wxactivex.h</a></ul>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,22 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Hierarchical Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
<li><a class="el" href="structNS__wxActiveX_1_1less__wxStringI.html">NS_wxActiveX::less_wxStringI</a>
<li><a class="el" href="classwxActiveX.html">wxActiveX</a>
<li><a class="el" href="classwxActiveX_1_1FuncX.html">wxActiveX::FuncX</a>
<li><a class="el" href="classwxActiveX_1_1ParamX.html">wxActiveX::ParamX</a>
<li><a class="el" href="classwxActiveX_1_1PropX.html">wxActiveX::PropX</a>
<li><a class="el" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt; I &gt;</a>
</ul>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,78 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>iehtmlwin.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>iehtmlwin.h</h1><a href="iehtmlwin_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
00004 <span class="preprocessor">#ifndef _IEHTMLWIN_H_</span>
00005 <span class="preprocessor"></span><span class="preprocessor">#define _IEHTMLWIN_H_</span>
00006 <span class="preprocessor"></span><span class="preprocessor">#pragma warning( disable : 4101 4786)</span>
00007 <span class="preprocessor"></span><span class="preprocessor">#pragma warning( disable : 4786)</span>
00008 <span class="preprocessor"></span>
00009
00010 <span class="preprocessor">#include &lt;wx/setup.h&gt;</span>
00011 <span class="preprocessor">#include &lt;wx/wx.h&gt;</span>
00012 <span class="preprocessor">#include &lt;exdisp.h&gt;</span>
00013 <span class="preprocessor">#include &lt;iostream&gt;</span>
00014 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
00015
00016 <span class="preprocessor">#include "<a class="code" href="wxactivex_8h.html">wxactivex.h</a>"</span>
00017
00018
00019 <span class="keyword">enum</span> wxIEHtmlRefreshLevel
00020 {
00021 wxIEHTML_REFRESH_NORMAL = 0,
00022 wxIEHTML_REFRESH_IFEXPIRED = 1,
00023 wxIEHTML_REFRESH_CONTINUE = 2,
00024 wxIEHTML_REFRESH_COMPLETELY = 3
00025 };
00026
00027 <span class="keyword">class </span>IStreamAdaptorBase;
00028
00029 <span class="keyword">class </span>wxIEHtmlWin : <span class="keyword">public</span> <a class="code" href="classwxActiveX.html">wxActiveX</a>
00030 {
00031 <span class="keyword">public</span>:
00032 wxIEHtmlWin(wxWindow * parent, wxWindowID id = -1,
00033 <span class="keyword">const</span> wxPoint&amp; pos = wxDefaultPosition,
00034 <span class="keyword">const</span> wxSize&amp; size = wxDefaultSize,
00035 <span class="keywordtype">long</span> style = 0,
00036 <span class="keyword">const</span> wxString&amp; name = wxPanelNameStr);
00037 <span class="keyword">virtual</span> ~wxIEHtmlWin();
00038
00039 <span class="keywordtype">void</span> LoadUrl(<span class="keyword">const</span> wxString&amp;);
00040 <span class="keywordtype">bool</span> LoadString(wxString html);
00041 <span class="keywordtype">bool</span> LoadStream(istream *strm);
00042 <span class="keywordtype">bool</span> LoadStream(wxInputStream *is);
00043
00044 <span class="keywordtype">void</span> SetCharset(wxString charset);
00045 <span class="keywordtype">void</span> SetEditMode(<span class="keywordtype">bool</span> seton);
00046 <span class="keywordtype">bool</span> GetEditMode();
00047 wxString GetStringSelection(<span class="keywordtype">bool</span> asHTML = <span class="keyword">false</span>);
00048 wxString GetText(<span class="keywordtype">bool</span> asHTML = <span class="keyword">false</span>);
00049
00050 <span class="keywordtype">bool</span> GoBack();
00051 <span class="keywordtype">bool</span> GoForward();
00052 <span class="keywordtype">bool</span> GoHome();
00053 <span class="keywordtype">bool</span> GoSearch();
00054 <span class="keywordtype">bool</span> Refresh(wxIEHtmlRefreshLevel level);
00055 <span class="keywordtype">bool</span> Stop();
00056
00057 DECLARE_EVENT_TABLE();
00058
00059 <span class="keyword">protected</span>:
00060 <span class="keywordtype">void</span> SetupBrowser();
00061 <span class="keywordtype">bool</span> LoadStream(IStreamAdaptorBase *pstrm);
00062
00063 <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;IWebBrowser2&gt;</a> m_webBrowser;
00064 };
00065
00066 <span class="preprocessor">#endif </span><span class="comment">/* _IEHTMLWIN_H_ */</span>
</pre></div><hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,31 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>iehtmlwin.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>iehtmlwin.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
implements wxIEHtmlWin window class
<p>
<p>
Definition in file <a class="el" href="iehtmlwin_8h-source.html">iehtmlwin.h</a>.
<p>
<code>#include &lt;wx/setup.h&gt;</code><br>
<code>#include &lt;wx/wx.h&gt;</code><br>
<code>#include &lt;exdisp.h&gt;</code><br>
<code>#include &lt;iostream&gt;</code><br>
<code>#include "<a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>"</code><br>
<p>
<a href="iehtmlwin_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
</table>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Main Page</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX Documentation</h1>
<p>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>NS_wxActiveX Namespace Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>NS_wxActiveX Namespace Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="classwxActiveX.html">wxActiveX</a> Namespace for stuff I want to keep out of other tools way.
<p>
<p>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structNS__wxActiveX_1_1less__wxStringI.html">less_wxStringI</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>STL utilty class.</em> <a href="structNS__wxActiveX_1_1less__wxStringI.html#_details">More...</a><em></em></font><br><br></td></tr>
</table>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Namespace Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxActiveX Namespace List</h1>Here is a list of all documented namespaces with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="namespaceNS__wxActiveX.html">NS_wxActiveX</a></td><td class="indexvalue">WxActiveX Namespace for stuff I want to keep out of other tools way</td></tr>
</table>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,28 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>NS_wxActiveX::less_wxStringI struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>NS_wxActiveX::less_wxStringI Struct Reference</h1><code>#include &lt;<a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
STL utilty class.
<p>
specific to <a class="el" href="classwxActiveX.html">wxActiveX</a>, for creating case insenstive maps etc
<p>
<p>
Definition at line <a class="el" href="wxactivex_8h-source.html#l00029">29</a> of file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>.<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="wxactivex_8h-source.html">wxactivex.h</a></ul>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,477 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>wxactivex.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxactivex.h</h1><a href="wxactivex_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
00005 <span class="preprocessor">#ifndef WX_ACTIVE_X</span>
00006 <span class="preprocessor"></span><span class="preprocessor">#define WX_ACTIVE_X</span>
00007 <span class="preprocessor"></span><span class="preprocessor">#pragma warning( disable : 4101 4786)</span>
00008 <span class="preprocessor"></span><span class="preprocessor">#pragma warning( disable : 4786)</span>
00009 <span class="preprocessor"></span>
00010
00011 <span class="preprocessor">#include &lt;wx/setup.h&gt;</span>
00012 <span class="preprocessor">#include &lt;wx/wx.h&gt;</span>
00013 <span class="preprocessor">#include &lt;wx/variant.h&gt;</span>
00014 <span class="preprocessor">#include &lt;wx/datetime.h&gt;</span>
00015 <span class="preprocessor">#include &lt;oleidl.h&gt;</span>
00016 <span class="preprocessor">#include &lt;exdisp.h&gt;</span>
00017 <span class="preprocessor">#include &lt;docobj.h&gt;</span>
00018 <span class="preprocessor">#include &lt;iostream&gt;</span>
00019 <span class="preprocessor">#include &lt;vector&gt;</span>
00020 <span class="preprocessor">#include &lt;map&gt;</span>
00021 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
00022
<a name="l00024"></a><a class="code" href="namespaceNS__wxActiveX.html">00024</a> <span class="keyword">namespace </span>NS_wxActiveX
00025 {
<a name="l00029"></a><a class="code" href="structNS__wxActiveX_1_1less__wxStringI.html">00029</a> <span class="keyword">struct </span><a class="code" href="structNS__wxActiveX_1_1less__wxStringI.html">less_wxStringI</a>
00030 {
00031 <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> wxString&amp; x, <span class="keyword">const</span> wxString&amp; y)<span class="keyword"> const</span>
00032 <span class="keyword"> </span>{
00033 <span class="keywordflow">return</span> x.CmpNoCase(y) &lt; 0;
00034 };
00035 };
00036 };
00037
00038
<a name="l00045"></a><a class="code" href="classwxAutoOleInterface.html">00045</a> <span class="keyword">template</span> &lt;<span class="keyword">class</span> I&gt; <span class="keyword">class </span><a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface</a>
00046 {
00047 <span class="keyword">protected</span>:
00048 I *m_interface;
00049
00050 <span class="keyword">public</span>:
<a name="l00053"></a><a class="code" href="classwxAutoOleInterface.html#a0">00053</a> <span class="keyword">explicit</span> <a class="code" href="classwxAutoOleInterface.html#a0">wxAutoOleInterface</a>(I *pInterface = NULL) : m_interface(pInterface) {}
00054
<a name="l00056"></a><a class="code" href="classwxAutoOleInterface.html#a1">00056</a> <a class="code" href="classwxAutoOleInterface.html#a0">wxAutoOleInterface</a>(REFIID riid, IUnknown *pUnk) : m_interface(NULL)
00057 {
00058 <a class="code" href="classwxAutoOleInterface.html#a9">QueryInterface</a>(riid, pUnk);
00059 };
<a name="l00061"></a><a class="code" href="classwxAutoOleInterface.html#a2">00061</a> <a class="code" href="classwxAutoOleInterface.html#a0">wxAutoOleInterface</a>(REFIID riid, IDispatch *pDispatch) : m_interface(NULL)
00062 {
00063 <a class="code" href="classwxAutoOleInterface.html#a9">QueryInterface</a>(riid, pDispatch);
00064 };
00065
<a name="l00067"></a><a class="code" href="classwxAutoOleInterface.html#a3">00067</a> <a class="code" href="classwxAutoOleInterface.html#a0">wxAutoOleInterface</a>(REFCLSID clsid, REFIID riid) : m_interface(NULL)
00068 {
00069 <a class="code" href="classwxAutoOleInterface.html#a10">CreateInstance</a>(clsid, riid);
00070 };
00071
<a name="l00073"></a><a class="code" href="classwxAutoOleInterface.html#a4">00073</a> <a class="code" href="classwxAutoOleInterface.html#a0">wxAutoOleInterface</a>(<span class="keyword">const</span> <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;I&gt;</a>&amp; ti) : m_interface(NULL)
00074 {
00075 <a class="code" href="classwxAutoOleInterface.html#a5">operator = </a>(ti);
00076 }
00077
<a name="l00079"></a><a class="code" href="classwxAutoOleInterface.html#a5">00079</a> <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;I&gt;</a>&amp; <a class="code" href="classwxAutoOleInterface.html#a5">operator = </a>(<span class="keyword">const</span> <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;I&gt;</a>&amp; ti)
00080 {
00081 <span class="keywordflow">if</span> (ti.<a class="code" href="classwxAutoOleInterface.html#n0">m_interface</a>)
00082 ti.<a class="code" href="classwxAutoOleInterface.html#n0">m_interface</a>-&gt;AddRef();
00083 <a class="code" href="classwxAutoOleInterface.html#a8">Free</a>();
00084 m_interface = ti.<a class="code" href="classwxAutoOleInterface.html#n0">m_interface</a>;
00085 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
00086 }
00087
<a name="l00090"></a><a class="code" href="classwxAutoOleInterface.html#a6">00090</a> <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;I&gt;</a>&amp; <a class="code" href="classwxAutoOleInterface.html#a5">operator = </a>(I *&amp;ti)
00091 {
00092 <a class="code" href="classwxAutoOleInterface.html#a8">Free</a>();
00093 m_interface = ti;
00094 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
00095 }
00096
<a name="l00098"></a><a class="code" href="classwxAutoOleInterface.html#a7">00098</a> <a class="code" href="classwxAutoOleInterface.html#a7">~wxAutoOleInterface</a>()
00099 {
00100 <a class="code" href="classwxAutoOleInterface.html#a8">Free</a>();
00101 };
00102
00103
<a name="l00105"></a><a class="code" href="classwxAutoOleInterface.html#a8">00105</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classwxAutoOleInterface.html#a8">Free</a>()
00106 {
00107 <span class="keywordflow">if</span> (m_interface)
00108 m_interface-&gt;Release();
00109 m_interface = NULL;
00110 };
00111
<a name="l00113"></a><a class="code" href="classwxAutoOleInterface.html#a9">00113</a> HRESULT <a class="code" href="classwxAutoOleInterface.html#a9">QueryInterface</a>(REFIID riid, IUnknown *pUnk)
00114 {
00115 <a class="code" href="classwxAutoOleInterface.html#a8">Free</a>();
00116 wxASSERT(pUnk != NULL);
00117 <span class="keywordflow">return</span> pUnk-&gt;QueryInterface(riid, (<span class="keywordtype">void</span> **) &amp;m_interface);
00118 };
00119
<a name="l00121"></a><a class="code" href="classwxAutoOleInterface.html#a10">00121</a> HRESULT <a class="code" href="classwxAutoOleInterface.html#a10">CreateInstance</a>(REFCLSID clsid, REFIID riid)
00122 {
00123 <a class="code" href="classwxAutoOleInterface.html#a8">Free</a>();
00124 <span class="keywordflow">return</span> CoCreateInstance(clsid, NULL, CLSCTX_ALL, riid, (<span class="keywordtype">void</span> **) &amp;m_interface);
00125 };
00126
00127
<a name="l00129"></a><a class="code" href="classwxAutoOleInterface.html#a11">00129</a> <span class="keyword">inline</span> <a class="code" href="classwxAutoOleInterface.html#a11">operator I *</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_interface;}
00130
<a name="l00132"></a><a class="code" href="classwxAutoOleInterface.html#a12">00132</a> <span class="keyword">inline</span> I* <a class="code" href="classwxAutoOleInterface.html#a12">operator -&gt;</a>() {<span class="keywordflow">return</span> m_interface;}
<a name="l00134"></a><a class="code" href="classwxAutoOleInterface.html#a13">00134</a> <span class="keyword">inline</span> I** <a class="code" href="classwxAutoOleInterface.html#a13">GetRef</a>() {<span class="keywordflow">return</span> &amp;m_interface;}
<a name="l00136"></a><a class="code" href="classwxAutoOleInterface.html#a14">00136</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classwxAutoOleInterface.html#a14">Ok</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_interface != NULL;}
00137 };
00138
00139
00142 wxString <a class="code" href="wxactivex_8h.html#a13">OLEHResultToString</a>(HRESULT hr);
00145 wxString <a class="code" href="wxactivex_8h.html#a14">GetIIDName</a>(REFIID riid);
00146
00147 <span class="comment">//#define __WXOLEDEBUG</span>
00148
00149
00150 <span class="preprocessor">#ifdef __WXOLEDEBUG</span>
00151 <span class="preprocessor"></span><span class="preprocessor"> #define WXOLE_TRACE(str) {OutputDebugString(str);OutputDebugString("\r\n");}</span>
00152 <span class="preprocessor"></span><span class="preprocessor"> #define WXOLE_TRACEOUT(stuff)\</span>
00153 <span class="preprocessor"> {\</span>
00154 <span class="preprocessor"> wxString os;\</span>
00155 <span class="preprocessor"> os &lt;&lt; stuff &lt;&lt; "\r\n";\</span>
00156 <span class="preprocessor"> WXOLE_TRACE(os.mb_str());\</span>
00157 <span class="preprocessor"> }</span>
00158 <span class="preprocessor"></span>
00159 <span class="preprocessor"> #define WXOLE_WARN(__hr,msg)\</span>
00160 <span class="preprocessor"> {\</span>
00161 <span class="preprocessor"> if (__hr != S_OK)\</span>
00162 <span class="preprocessor"> {\</span>
00163 <span class="preprocessor"> wxString s = "*** ";\</span>
00164 <span class="preprocessor"> s += msg;\</span>
00165 <span class="preprocessor"> s += " : "+ OLEHResultToString(__hr);\</span>
00166 <span class="preprocessor"> WXOLE_TRACE(s.c_str());\</span>
00167 <span class="preprocessor"> }\</span>
00168 <span class="preprocessor"> }</span>
00169 <span class="preprocessor"></span><span class="preprocessor">#else</span>
00170 <span class="preprocessor"></span><span class="preprocessor"> #define WXOLE_TRACE(str)</span>
00171 <span class="preprocessor"></span><span class="preprocessor"> #define WXOLE_TRACEOUT(stuff)</span>
00172 <span class="preprocessor"></span><span class="preprocessor"> #define WXOLE_WARN(_proc,msg) {_proc;}</span>
00173 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00174 <span class="preprocessor"></span>
00175 <span class="keyword">class </span>wxOleInit
00176 {
00177 <span class="keyword">public</span>:
00178 <span class="keyword">static</span> IMalloc *GetIMalloc();
00179
00180 wxOleInit();
00181 ~wxOleInit();
00182 };
00183
00184 <span class="preprocessor">#define DECLARE_OLE_UNKNOWN(cls)\</span>
00185 <span class="preprocessor"> private:\</span>
00186 <span class="preprocessor"> class TAutoInitInt\</span>
00187 <span class="preprocessor"> {\</span>
00188 <span class="preprocessor"> public:\</span>
00189 <span class="preprocessor"> LONG l;\</span>
00190 <span class="preprocessor"> TAutoInitInt() : l(0) {}\</span>
00191 <span class="preprocessor"> };\</span>
00192 <span class="preprocessor"> TAutoInitInt refCount, lockCount;\</span>
00193 <span class="preprocessor"> wxOleInit oleInit;\</span>
00194 <span class="preprocessor"> static void _GetInterface(cls *self, REFIID iid, void **_interface, const char *&amp;desc);\</span>
00195 <span class="preprocessor"> public:\</span>
00196 <span class="preprocessor"> LONG GetRefCount();\</span>
00197 <span class="preprocessor"> HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void ** ppvObject);\</span>
00198 <span class="preprocessor"> ULONG STDMETHODCALLTYPE AddRef();\</span>
00199 <span class="preprocessor"> ULONG STDMETHODCALLTYPE Release();\</span>
00200 <span class="preprocessor"> ULONG STDMETHODCALLTYPE AddLock();\</span>
00201 <span class="preprocessor"> ULONG STDMETHODCALLTYPE ReleaseLock()</span>
00202 <span class="preprocessor"></span>
00203 <span class="preprocessor">#define DEFINE_OLE_TABLE(cls)\</span>
00204 <span class="preprocessor"> LONG cls::GetRefCount() {return refCount.l;}\</span>
00205 <span class="preprocessor"> HRESULT STDMETHODCALLTYPE cls::QueryInterface(REFIID iid, void ** ppvObject)\</span>
00206 <span class="preprocessor"> {\</span>
00207 <span class="preprocessor"> if (! ppvObject)\</span>
00208 <span class="preprocessor"> {\</span>
00209 <span class="preprocessor"> WXOLE_TRACE("*** NULL POINTER ***");\</span>
00210 <span class="preprocessor"> return E_FAIL;\</span>
00211 <span class="preprocessor"> };\</span>
00212 <span class="preprocessor"> const char *desc = NULL;\</span>
00213 <span class="preprocessor"> cls::_GetInterface(this, iid, ppvObject, desc);\</span>
00214 <span class="preprocessor"> if (! *ppvObject)\</span>
00215 <span class="preprocessor"> {\</span>
00216 <span class="preprocessor"> WXOLE_TRACEOUT("&lt;" &lt;&lt; GetIIDName(iid).c_str() &lt;&lt; "&gt; Not Found");\</span>
00217 <span class="preprocessor"> return E_NOINTERFACE;\</span>
00218 <span class="preprocessor"> };\</span>
00219 <span class="preprocessor"> WXOLE_TRACEOUT("QI : &lt;" &lt;&lt; desc &lt;&lt;"&gt;");\</span>
00220 <span class="preprocessor"> ((IUnknown * )(*ppvObject))-&gt;AddRef();\</span>
00221 <span class="preprocessor"> return S_OK;\</span>
00222 <span class="preprocessor"> };\</span>
00223 <span class="preprocessor"> ULONG STDMETHODCALLTYPE cls::AddRef()\</span>
00224 <span class="preprocessor"> {\</span>
00225 <span class="preprocessor"> WXOLE_TRACEOUT(# cls &lt;&lt; "::Add ref(" &lt;&lt; refCount.l &lt;&lt; ")");\</span>
00226 <span class="preprocessor"> InterlockedIncrement(&amp;refCount.l);\</span>
00227 <span class="preprocessor"> return refCount.l;\</span>
00228 <span class="preprocessor"> };\</span>
00229 <span class="preprocessor"> ULONG STDMETHODCALLTYPE cls::Release()\</span>
00230 <span class="preprocessor"> {\</span>
00231 <span class="preprocessor"> if (refCount.l &gt; 0)\</span>
00232 <span class="preprocessor"> {\</span>
00233 <span class="preprocessor"> InterlockedDecrement(&amp;refCount.l);\</span>
00234 <span class="preprocessor"> WXOLE_TRACEOUT(# cls &lt;&lt; "::Del ref(" &lt;&lt; refCount.l &lt;&lt; ")");\</span>
00235 <span class="preprocessor"> if (refCount.l == 0)\</span>
00236 <span class="preprocessor"> {\</span>
00237 <span class="preprocessor"> delete this;\</span>
00238 <span class="preprocessor"> return 0;\</span>
00239 <span class="preprocessor"> };\</span>
00240 <span class="preprocessor"> return refCount.l;\</span>
00241 <span class="preprocessor"> }\</span>
00242 <span class="preprocessor"> else\</span>
00243 <span class="preprocessor"> return 0;\</span>
00244 <span class="preprocessor"> }\</span>
00245 <span class="preprocessor"> ULONG STDMETHODCALLTYPE cls::AddLock()\</span>
00246 <span class="preprocessor"> {\</span>
00247 <span class="preprocessor"> WXOLE_TRACEOUT(# cls &lt;&lt; "::Add Lock(" &lt;&lt; lockCount.l &lt;&lt; ")");\</span>
00248 <span class="preprocessor"> InterlockedIncrement(&amp;lockCount.l);\</span>
00249 <span class="preprocessor"> return lockCount.l;\</span>
00250 <span class="preprocessor"> };\</span>
00251 <span class="preprocessor"> ULONG STDMETHODCALLTYPE cls::ReleaseLock()\</span>
00252 <span class="preprocessor"> {\</span>
00253 <span class="preprocessor"> if (lockCount.l &gt; 0)\</span>
00254 <span class="preprocessor"> {\</span>
00255 <span class="preprocessor"> InterlockedDecrement(&amp;lockCount.l);\</span>
00256 <span class="preprocessor"> WXOLE_TRACEOUT(# cls &lt;&lt; "::Del Lock(" &lt;&lt; lockCount.l &lt;&lt; ")");\</span>
00257 <span class="preprocessor"> return lockCount.l;\</span>
00258 <span class="preprocessor"> }\</span>
00259 <span class="preprocessor"> else\</span>
00260 <span class="preprocessor"> return 0;\</span>
00261 <span class="preprocessor"> }\</span>
00262 <span class="preprocessor"> DEFINE_OLE_BASE(cls)</span>
00263 <span class="preprocessor"></span>
00264 <span class="preprocessor">#define DEFINE_OLE_BASE(cls)\</span>
00265 <span class="preprocessor"> void cls::_GetInterface(cls *self, REFIID iid, void **_interface, const char *&amp;desc)\</span>
00266 <span class="preprocessor"> {\</span>
00267 <span class="preprocessor"> *_interface = NULL;\</span>
00268 <span class="preprocessor"> desc = NULL;</span>
00269 <span class="preprocessor"></span>
00270 <span class="preprocessor">#define OLE_INTERFACE(_iid, _type)\</span>
00271 <span class="preprocessor"> if (IsEqualIID(iid, _iid))\</span>
00272 <span class="preprocessor"> {\</span>
00273 <span class="preprocessor"> WXOLE_TRACE("Found Interface &lt;" # _type "&gt;");\</span>
00274 <span class="preprocessor"> *_interface = (IUnknown *) (_type *) self;\</span>
00275 <span class="preprocessor"> desc = # _iid;\</span>
00276 <span class="preprocessor"> return;\</span>
00277 <span class="preprocessor"> }</span>
00278 <span class="preprocessor"></span>
00279 <span class="preprocessor">#define OLE_IINTERFACE(_face) OLE_INTERFACE(IID_##_face, _face)</span>
00280 <span class="preprocessor"></span>
00281 <span class="preprocessor">#define OLE_INTERFACE_CUSTOM(func)\</span>
00282 <span class="preprocessor"> if (func(self, iid, _interface, desc))\</span>
00283 <span class="preprocessor"> {\</span>
00284 <span class="preprocessor"> return;\</span>
00285 <span class="preprocessor"> }</span>
00286 <span class="preprocessor"></span>
00287 <span class="preprocessor">#define END_OLE_TABLE\</span>
00288 <span class="preprocessor"> }</span>
00289 <span class="preprocessor"></span>
00290
00328
<a name="l00329"></a><a class="code" href="classwxActiveX.html">00329</a> <span class="keyword">class </span><a class="code" href="classwxActiveX.html">wxActiveX</a> : <span class="keyword">public</span> wxWindow {
00330 <span class="keyword">public</span>:
<a name="l00333"></a><a class="code" href="classwxActiveX_1_1ParamX.html">00333</a> <span class="keyword">class </span><a class="code" href="classwxActiveX_1_1ParamX.html">ParamX</a>
00334 {
00335 <span class="keyword">public</span>:
00336 USHORT flags;
00337 <span class="keywordtype">bool</span> isPtr, isSafeArray;
00338 VARTYPE vt;
00339 wxString name;
00340
00341 <a class="code" href="classwxActiveX_1_1ParamX.html">ParamX</a>() : vt(VT_EMPTY) {}
00342 <span class="keyword">inline</span> <span class="keywordtype">bool</span> IsIn()<span class="keyword"> const </span>{<span class="keywordflow">return</span> (flags &amp; IDLFLAG_FIN) != 0;}
00343 <span class="keyword">inline</span> <span class="keywordtype">bool</span> IsOut()<span class="keyword"> const </span>{<span class="keywordflow">return</span> (flags &amp; IDLFLAG_FOUT) != 0;}
00344 <span class="keyword">inline</span> <span class="keywordtype">bool</span> IsRetVal()<span class="keyword"> const </span>{<span class="keywordflow">return</span> (flags &amp; IDLFLAG_FRETVAL) != 0;}
00345 };
00346 <span class="keyword">typedef</span> vector&lt;ParamX&gt; ParamXArray;
00347
<a name="l00350"></a><a class="code" href="classwxActiveX_1_1FuncX.html">00350</a> <span class="keyword">class </span><a class="code" href="classwxActiveX_1_1FuncX.html">FuncX</a>
00351 {
00352 <span class="keyword">public</span>:
00353 wxString name;
00354 MEMBERID memid;
00355 <span class="keywordtype">bool</span> hasOut;
00356
00357 <a class="code" href="classwxActiveX_1_1ParamX.html">ParamX</a> retType;
00358 ParamXArray params;
00359 };
00360
<a name="l00362"></a><a class="code" href="classwxActiveX_1_1PropX.html">00362</a> <span class="keyword">class </span><a class="code" href="classwxActiveX_1_1PropX.html">PropX</a>
00363 {
00364 <span class="keyword">public</span>:
00365 wxString name;
00366 MEMBERID memid;
00367 <a class="code" href="classwxActiveX_1_1ParamX.html">ParamX</a> type;
00368 <a class="code" href="classwxActiveX_1_1ParamX.html">ParamX</a> arg;
00369 <span class="keywordtype">bool</span> putByRef;
00370
00371 <a class="code" href="classwxActiveX_1_1PropX.html">PropX</a>() : putByRef (<span class="keyword">false</span>) {}
00372 <span class="keyword">inline</span> <span class="keywordtype">bool</span> CanGet()<span class="keyword"> const </span>{<span class="keywordflow">return</span> type.<a class="code" href="classwxActiveX_1_1ParamX.html#m3">vt</a> != VT_EMPTY;}
00373 <span class="keyword">inline</span> <span class="keywordtype">bool</span> CanSet()<span class="keyword"> const </span>{<span class="keywordflow">return</span> arg.<a class="code" href="classwxActiveX_1_1ParamX.html#m3">vt</a> != VT_EMPTY;}
00374 };
00375
00377 <a class="code" href="classwxActiveX.html#a0">wxActiveX</a>(wxWindow * parent, REFCLSID clsid, wxWindowID id = -1,
00378 <span class="keyword">const</span> wxPoint&amp; pos = wxDefaultPosition,
00379 <span class="keyword">const</span> wxSize&amp; size = wxDefaultSize,
00380 <span class="keywordtype">long</span> style = 0,
00381 <span class="keyword">const</span> wxString&amp; name = wxPanelNameStr);
00383 <a class="code" href="classwxActiveX.html#a0">wxActiveX</a>(wxWindow * parent, wxString progId, wxWindowID id = -1,
00384 <span class="keyword">const</span> wxPoint&amp; pos = wxDefaultPosition,
00385 <span class="keyword">const</span> wxSize&amp; size = wxDefaultSize,
00386 <span class="keywordtype">long</span> style = 0,
00387 <span class="keyword">const</span> wxString&amp; name = wxPanelNameStr);
00388 <span class="keyword">virtual</span> ~<a class="code" href="classwxActiveX.html">wxActiveX</a>();
00389
<a name="l00391"></a><a class="code" href="classwxActiveX.html#a3">00391</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classwxActiveX.html#a3">GetEventCount</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_events.size();}
00394 <span class="keyword">const</span> FuncX&amp; <a class="code" href="classwxActiveX.html#a4">GetEventDesc</a>(<span class="keywordtype">int</span> idx) <span class="keyword">const</span>;
00395
<a name="l00397"></a><a class="code" href="classwxActiveX.html#a5">00397</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classwxActiveX.html#a5">GetPropCount</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_props.size();}
00400 <span class="keyword">const</span> PropX&amp; <a class="code" href="classwxActiveX.html#a6">GetPropDesc</a>(<span class="keywordtype">int</span> idx) <span class="keyword">const</span>;
00403 <span class="keyword">const</span> PropX&amp; <a class="code" href="classwxActiveX.html#a6">GetPropDesc</a>(wxString name) <span class="keyword">const</span>;
00404
<a name="l00406"></a><a class="code" href="classwxActiveX.html#a8">00406</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classwxActiveX.html#a8">GetMethodCount</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_methods.size();}
00409 <span class="keyword">const</span> FuncX&amp; <a class="code" href="classwxActiveX.html#a9">GetMethodDesc</a>(<span class="keywordtype">int</span> idx) <span class="keyword">const</span>;
00412 <span class="keyword">const</span> FuncX&amp; <a class="code" href="classwxActiveX.html#a9">GetMethodDesc</a>(wxString name) <span class="keyword">const</span>;
00413
00415 <span class="keywordtype">void</span> <a class="code" href="classwxActiveX.html#a11">SetProp</a>(MEMBERID name, VARIANTARG&amp; value);
00417 <span class="keywordtype">void</span> <a class="code" href="classwxActiveX.html#a11">SetProp</a>(<span class="keyword">const</span> wxString &amp;name, <span class="keyword">const</span> wxVariant &amp;value);
00418
00419 <span class="keyword">class </span>wxPropertySetter
00420 {
00421 <span class="keyword">public</span>:
00422 <a class="code" href="classwxActiveX.html">wxActiveX</a> *m_ctl;
00423 wxString m_propName;
00424
00425 wxPropertySetter(<a class="code" href="classwxActiveX.html">wxActiveX</a> *ctl, wxString propName) :
00426 m_ctl(ctl), m_propName(propName) {}
00427
00428 <span class="keyword">inline</span> <span class="keyword">const</span> wxPropertySetter&amp; operator = (wxVariant v)<span class="keyword"> const</span>
00429 <span class="keyword"> </span>{
00430 m_ctl-&gt;<a class="code" href="classwxActiveX.html#a11">SetProp</a>(m_propName, v);
00431 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
00432 };
00433
00434 <span class="keyword">inline</span> operator wxVariant()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ctl-&gt;<a class="code" href="classwxActiveX.html#a16">GetPropAsWxVariant</a>(m_propName);};
00435 <span class="keyword">inline</span> operator wxString()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ctl-&gt;<a class="code" href="classwxActiveX.html#a17">GetPropAsString</a>(m_propName);};
00436 <span class="keyword">inline</span> operator char()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ctl-&gt;<a class="code" href="classwxActiveX.html#a18">GetPropAsChar</a>(m_propName);};
00437 <span class="keyword">inline</span> operator long()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ctl-&gt;<a class="code" href="classwxActiveX.html#a19">GetPropAsLong</a>(m_propName);};
00438 <span class="keyword">inline</span> operator bool()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ctl-&gt;<a class="code" href="classwxActiveX.html#a20">GetPropAsBool</a>(m_propName);};
00439 <span class="keyword">inline</span> operator double()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ctl-&gt;<a class="code" href="classwxActiveX.html#a21">GetPropAsDouble</a>(m_propName);};
00440 <span class="keyword">inline</span> operator wxDateTime()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ctl-&gt;<a class="code" href="classwxActiveX.html#a22">GetPropAsDateTime</a>(m_propName);};
00441 <span class="keyword">inline</span> operator void *()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ctl-&gt;<a class="code" href="classwxActiveX.html#a23">GetPropAsPointer</a>(m_propName);};
00442 };
00443
<a name="l00458"></a><a class="code" href="classwxActiveX.html#a13">00458</a> <span class="keyword">inline</span> wxPropertySetter <a class="code" href="classwxActiveX.html#a13">Prop</a>(wxString name) {<span class="keywordflow">return</span> wxPropertySetter(<span class="keyword">this</span>, name);}
00459
00460 VARIANT GetPropAsVariant(MEMBERID name);
00461 VARIANT GetPropAsVariant(<span class="keyword">const</span> wxString&amp; name);
00462 wxVariant GetPropAsWxVariant(<span class="keyword">const</span> wxString&amp; name);
00463 wxString GetPropAsString(<span class="keyword">const</span> wxString&amp; name);
00464 <span class="keywordtype">char</span> GetPropAsChar(<span class="keyword">const</span> wxString&amp; name);
00465 <span class="keywordtype">long</span> GetPropAsLong(<span class="keyword">const</span> wxString&amp; name);
00466 <span class="keywordtype">bool</span> GetPropAsBool(<span class="keyword">const</span> wxString&amp; name);
00467 <span class="keywordtype">double</span> GetPropAsDouble(<span class="keyword">const</span> wxString&amp; name);
00468 wxDateTime GetPropAsDateTime(<span class="keyword">const</span> wxString&amp; name);
00469 <span class="keywordtype">void</span> *GetPropAsPointer(<span class="keyword">const</span> wxString&amp; name);
00470
00471 <span class="comment">// methods</span>
00472 <span class="comment">// VARIANTARG form is passed straight to Invoke, </span>
00473 <span class="comment">// so args in *REVERSE* order</span>
00474 VARIANT <a class="code" href="classwxActiveX.html#a26">CallMethod</a>(MEMBERID name, VARIANTARG args[], <span class="keywordtype">int</span> argc);
00475 VARIANT <a class="code" href="classwxActiveX.html#a26">CallMethod</a>(wxString name, VARIANTARG args[] = NULL, <span class="keywordtype">int</span> argc = -1);
00476 <span class="comment">// args are in *NORMAL* order</span>
00477 <span class="comment">// args can be a single wxVariant or an array</span>
00493 <span class="comment"> wxVariant CallMethod(wxString name, wxVariant args[], int nargs = -1);</span>
00494
00495 HRESULT ConnectAdvise(REFIID riid, IUnknown *eventSink);
00496
00497 <span class="keywordtype">void</span> OnSize(wxSizeEvent&amp;);
00498 <span class="keywordtype">void</span> OnPaint(wxPaintEvent&amp; event);
00499 <span class="keywordtype">void</span> OnMouse(wxMouseEvent&amp; event);
00500 <span class="keywordtype">void</span> OnSetFocus(wxFocusEvent&amp;);
00501 <span class="keywordtype">void</span> OnKillFocus(wxFocusEvent&amp;);
00502
00503 DECLARE_EVENT_TABLE();
00504
00505 <span class="keyword">protected</span>:
00506 <span class="keyword">friend</span> <span class="keyword">class </span>FrameSite;
00507 <span class="keyword">friend</span> <span class="keyword">class </span>wxActiveXEvents;
00508
00509 <span class="keyword">typedef</span> map&lt;MEMBERID, FuncX&gt; FuncXMap;
00510 <span class="keyword">typedef</span> map&lt;wxString, FuncX, NS_wxActiveX::less_wxStringI&gt; FuncXStringMap;
00511 <span class="keyword">typedef</span> map&lt;wxString, PropX, NS_wxActiveX::less_wxStringI&gt; PropXMap;
00512 <span class="keyword">typedef</span> <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;IConnectionPoint&gt;</a> wxOleConnectionPoint;
00513 <span class="keyword">typedef</span> pair&lt;wxOleConnectionPoint, DWORD&gt; wxOleConnection;
00514 <span class="keyword">typedef</span> vector&lt;wxOleConnection&gt; wxOleConnectionArray;
00515
00516 <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;IDispatch&gt;</a> m_Dispatch;
00517 <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;IOleClientSite&gt;</a> m_clientSite;
00518 <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;IUnknown&gt;</a> m_ActiveX;
00519 <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;IOleObject&gt;</a> m_oleObject;
00520 <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;IOleInPlaceObject&gt;</a> m_oleInPlaceObject;
00521 <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;IOleInPlaceActiveObject&gt;</a>
00522
00523 m_oleInPlaceActiveObject;
00524 <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;IOleDocumentView&gt;</a> m_docView;
00525 <a class="code" href="classwxAutoOleInterface.html">wxAutoOleInterface&lt;IViewObject&gt;</a> m_viewObject;
00526 HWND m_oleObjectHWND;
00527 <span class="keywordtype">bool</span> m_bAmbientUserMode;
00528 DWORD m_docAdviseCookie;
00529 wxOleConnectionArray m_connections;
00530
00531 <span class="keywordtype">void</span> CreateActiveX(REFCLSID clsid);
00532 <span class="keywordtype">void</span> CreateActiveX(LPOLESTR progId);
00533 HRESULT AmbientPropertyChanged(DISPID dispid);
00534
00535 <span class="keywordtype">void</span> GetTypeInfo();
00536 <span class="keywordtype">void</span> GetTypeInfo(ITypeInfo *ti, <span class="keywordtype">bool</span> defInterface, <span class="keywordtype">bool</span> defEventSink);
00537
00538
00539 <span class="comment">// events</span>
00540 FuncXMap m_events;
00541
00542 <span class="comment">// properties</span>
00543 PropXMap m_props;
00544
00545 <span class="comment">// Methods</span>
00546 FuncXStringMap m_methods;
00547
00548 <span class="keywordtype">long</span> MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
00549 };
00550
00551 <span class="comment">// events</span>
00552 <span class="keyword">class </span>wxActiveXEvent : <span class="keyword">public</span> wxCommandEvent
00553 {
00554 <span class="keyword">private</span>:
00555 <span class="keyword">friend</span> <span class="keyword">class </span>wxActiveXEvents;
00556
00557 wxVariant m_params;
00558
00559 <span class="keyword">public</span>:
00560
00561 <span class="keyword">virtual</span> wxEvent *Clone()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">new</span> wxActiveXEvent(*<span class="keyword">this</span>); }
00562
00563 wxString EventName();
00564 <span class="keywordtype">int</span> ParamCount() <span class="keyword">const</span>;
00565 wxString ParamType(<span class="keywordtype">int</span> idx);
00566 wxString ParamName(<span class="keywordtype">int</span> idx);
00567 wxVariant&amp; operator[] (<span class="keywordtype">int</span> idx);
00568 wxVariant&amp; operator[] (wxString name);
00569 };
00570
00571 <span class="keyword">const</span> wxEventType&amp; RegisterActiveXEvent(<span class="keyword">const</span> wxChar *eventName);
00572 <span class="keyword">const</span> wxEventType&amp; RegisterActiveXEvent(DISPID event);
00573
00574 <span class="keyword">typedef</span> void (wxEvtHandler::*wxActiveXEventFunction)(wxActiveXEvent&amp;);
00575
<a name="l00578"></a><a class="code" href="wxactivex_8h.html#a10">00578</a> <span class="preprocessor">#define EVT_ACTIVEX(id, eventName, fn) DECLARE_EVENT_TABLE_ENTRY(RegisterActiveXEvent(wxT(eventName)), id, -1, (wxObjectEventFunction) (wxEventFunction) (wxActiveXEventFunction) &amp; fn, (wxObject *) NULL ),</span>
<a name="l00581"></a><a class="code" href="wxactivex_8h.html#a11">00581</a> <span class="preprocessor">#define EVT_ACTIVEX_DISPID(id, eventDispId, fn) DECLARE_EVENT_TABLE_ENTRY(RegisterActiveXEvent(eventDispId), id, -1, (wxObjectEventFunction) (wxEventFunction) (wxActiveXEventFunction) &amp; fn, (wxObject *) NULL ),</span>
00582 <span class="preprocessor"></span>
00583 <span class="comment">//util</span>
00584 <span class="keywordtype">bool</span> wxDateTimeToVariant(wxDateTime dt, VARIANTARG&amp; va);
00585 <span class="keywordtype">bool</span> VariantToWxDateTime(VARIANTARG va, wxDateTime&amp; dt);
00596 <span class="keywordtype">bool</span> MSWVariantToVariant(VARIANTARG&amp; va, wxVariant&amp; vx);
00607 <span class="keywordtype">bool</span> VariantToMSWVariant(<span class="keyword">const</span> wxVariant&amp; vx, VARIANTARG&amp; va);
00608
00609 <span class="preprocessor">#endif </span><span class="comment">/* _IEHTMLWIN_H_ */</span>
</pre></div><hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,216 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>wxactivex.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3-rc3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>wxactivex.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
implements <a class="el" href="classwxActiveX.html">wxActiveX</a> window class and OLE tools
<p>
<p>
Definition in file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>.
<p>
<code>#include &lt;wx/setup.h&gt;</code><br>
<code>#include &lt;wx/wx.h&gt;</code><br>
<code>#include &lt;wx/variant.h&gt;</code><br>
<code>#include &lt;wx/datetime.h&gt;</code><br>
<code>#include &lt;oleidl.h&gt;</code><br>
<code>#include &lt;exdisp.h&gt;</code><br>
<code>#include &lt;docobj.h&gt;</code><br>
<code>#include &lt;iostream&gt;</code><br>
<code>#include &lt;vector&gt;</code><br>
<code>#include &lt;map&gt;</code><br>
<p>
<a href="wxactivex_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Namespaces</h2></td></tr>
<tr><td nowrap align=right valign=top>namespace &nbsp;</td><td valign=bottom><a class="el" href="namespaceNS__wxActiveX.html">NS_wxActiveX</a></td></tr>
<tr><td nowrap align=right valign=top>namespace &nbsp;</td><td valign=bottom><b>std</b></td></tr>
<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classwxAutoOleInterface.html">wxAutoOleInterface</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Template class for smart interface handling.</em> <a href="classwxAutoOleInterface.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX.html">wxActiveX</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Main class for embedding a ActiveX control.</em> <a href="classwxActiveX.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX_1_1ParamX.html">ParamX</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>General parameter and return type infoformation for Events, Properties and Methods.</em> <a href="classwxActiveX_1_1ParamX.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX_1_1FuncX.html">FuncX</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Type &amp; Parameter info for Events and Methods.</em> <a href="classwxActiveX_1_1FuncX.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classwxActiveX_1_1PropX.html">PropX</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Type info for properties.</em> <a href="classwxActiveX_1_1PropX.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="a10" doxytag="wxactivex.h::EVT_ACTIVEX"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="wxactivex_8h.html#a10">EVT_ACTIVEX</a>(id, eventName, fn)&nbsp;&nbsp;&nbsp;DECLARE_EVENT_TABLE_ENTRY(RegisterActiveXEvent(wxT(eventName)), id, -1, (wxObjectEventFunction) (wxEventFunction) (wxActiveXEventFunction) &amp; fn, (wxObject *) NULL ),</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Event handle for events by name.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a11" doxytag="wxactivex.h::EVT_ACTIVEX_DISPID"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="wxactivex_8h.html#a11">EVT_ACTIVEX_DISPID</a>(id, eventDispId, fn)&nbsp;&nbsp;&nbsp;DECLARE_EVENT_TABLE_ENTRY(RegisterActiveXEvent(eventDispId), id, -1, (wxObjectEventFunction) (wxEventFunction) (wxActiveXEventFunction) &amp; fn, (wxObject *) NULL ),</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Event handle for events by DISPID (dispath id).</em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="a13" doxytag="wxactivex.h::OLEHResultToString"></a>
wxString&nbsp;</td><td valign=bottom><a class="el" href="wxactivex_8h.html#a13">OLEHResultToString</a> (HRESULT hr)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Converts a std HRESULT to its error code. Hardcoded, by no means a definitive list.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a14" doxytag="wxactivex.h::GetIIDName"></a>
wxString&nbsp;</td><td valign=bottom><a class="el" href="wxactivex_8h.html#a14">GetIIDName</a> (REFIID riid)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the string description of a IID. Hardcoded, by no means a definitive list.</em></font><br><br></td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a name="a3" doxytag="wxactivex.h::DECLARE_OLE_UNKNOWN"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define DECLARE_OLE_UNKNOWN</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">cls&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<b>Value:</b><div class="fragment"><pre><span class="keyword">private</span>:\
<span class="keyword">class </span>TAutoInitInt\
{\
<span class="keyword">public</span>:\
LONG l;\
TAutoInitInt() : l(0) {}\
};\
TAutoInitInt refCount, lockCount;\
wxOleInit oleInit;\
<span class="keyword">static</span> <span class="keywordtype">void</span> _GetInterface(cls *self, REFIID iid, <span class="keywordtype">void</span> **_interface, <span class="keyword">const</span> <span class="keywordtype">char</span> *&amp;desc);\
<span class="keyword">public</span>:\
LONG GetRefCount();\
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, <span class="keywordtype">void</span> ** ppvObject);\
ULONG STDMETHODCALLTYPE AddRef();\
ULONG STDMETHODCALLTYPE Release();\
ULONG STDMETHODCALLTYPE AddLock();\
ULONG STDMETHODCALLTYPE ReleaseLock()
</pre></div>
<p>
Definition at line <a class="el" href="wxactivex_8h-source.html#l00184">184</a> of file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>. </td>
</tr>
</table>
<a name="a5" doxytag="wxactivex.h::DEFINE_OLE_BASE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define DEFINE_OLE_BASE</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">cls&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<b>Value:</b><div class="fragment"><pre><span class="keywordtype">void</span> cls::_GetInterface(cls *self, REFIID iid, <span class="keywordtype">void</span> **_interface, <span class="keyword">const</span> <span class="keywordtype">char</span> *&amp;desc)\
{\
*_interface = NULL;\
desc = NULL;
</pre></div>
<p>
Definition at line <a class="el" href="wxactivex_8h-source.html#l00264">264</a> of file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>. </td>
</tr>
</table>
<a name="a6" doxytag="wxactivex.h::OLE_INTERFACE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define OLE_INTERFACE</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">_iid, <tr>
<td></td>
<td></td>
<td class="md" nowrap>_type&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<b>Value:</b><div class="fragment"><pre><span class="keywordflow">if</span> (IsEqualIID(iid, _iid))\
{\
WXOLE_TRACE(<span class="stringliteral">"Found Interface &lt;"</span> # _type <span class="stringliteral">"&gt;"</span>);\
*_interface = (IUnknown *) (_type *) self;\
desc = # _iid;\
<span class="keywordflow">return</span>;\
}
</pre></div>
<p>
Definition at line <a class="el" href="wxactivex_8h-source.html#l00270">270</a> of file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>. </td>
</tr>
</table>
<a name="a8" doxytag="wxactivex.h::OLE_INTERFACE_CUSTOM"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define OLE_INTERFACE_CUSTOM</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">func&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<b>Value:</b><div class="fragment"><pre><span class="keywordflow">if</span> (func(self, iid, _interface, desc))\
{\
<span class="keywordflow">return</span>;\
}
</pre></div>
<p>
Definition at line <a class="el" href="wxactivex_8h-source.html#l00281">281</a> of file <a class="el" href="wxactivex_8h-source.html">wxactivex.h</a>. </td>
</tr>
</table>
<hr><address style="align: right;"><small>Generated on Tue Apr 1 14:51:12 2003 for wxActiveX by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3-rc3 </small></address>
</body>
</html>
@@ -0,0 +1,39 @@
all: refman.dvi
ps: refman.ps
pdf: refman.pdf
ps_2on1: refman_2on1.ps
pdf_2on1: refman_2on1.pdf
refman.ps: refman.dvi
dvips -o refman.ps refman.dvi
refman.pdf: refman.ps
gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=refman.pdf -c save pop -f refman.ps
refman.dvi: refman.tex doxygen.sty
echo "Running latex..."
latex refman.tex
echo "Running makeindex..."
makeindex refman.idx
echo "Rerunning latex...."
latex refman.tex
latex_count=5 ; \
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
latex refman.tex ;\
latex_count=`expr $$latex_count - 1` ;\
done
refman_2on1.ps: refman.ps
psnup -2 refman.ps >refman_2on1.ps
refman_2on1.pdf: refman_2on1.ps
gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=refman_2on1.pdf -c save pop -f refman_2on1.ps
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out
@@ -0,0 +1,9 @@
\section{wx\-Active\-X Data Structures}
Here are the data structures with brief descriptions:\begin{CompactList}
\item\contentsline{section}{{\bf NS\_\-wx\-Active\-X::less\_\-wx\-String\-I} (STL utilty class)}{\pageref{structNS__wxActiveX_1_1less__wxStringI}}{}
\item\contentsline{section}{{\bf wx\-Active\-X} (Main class for embedding a Active\-X control)}{\pageref{classwxActiveX}}{}
\item\contentsline{section}{{\bf wx\-Active\-X::Func\-X} (Type \& Parameter info for Events and Methods)}{\pageref{classwxActiveX_1_1FuncX}}{}
\item\contentsline{section}{{\bf wx\-Active\-X::Param\-X} (General parameter and return type infoformation for Events, Properties and Methods)}{\pageref{classwxActiveX_1_1ParamX}}{}
\item\contentsline{section}{{\bf wx\-Active\-X::Prop\-X} (Type info for properties)}{\pageref{classwxActiveX_1_1PropX}}{}
\item\contentsline{section}{{\bf wx\-Auto\-Ole\-Interface$<$ I $>$} (Template class for smart interface handling)}{\pageref{classwxAutoOleInterface}}{}
\end{CompactList}
@@ -0,0 +1,285 @@
\section{wx\-Active\-X Class Reference}
\label{classwxActiveX}\index{wxActiveX@{wxActiveX}}
{\tt \#include $<$wxactivex.h$>$}
\subsection{Detailed Description}
Main class for embedding a Active\-X control.
Use by itself or derive from it \begin{Desc}
\item[Note:]The utility program (wxie) can generate a list of events, methods \& properties for a control. First display the control (File$|$Display), then get the type info (Active\-X$|$Get Type Info) - these are copied to the clipboard. Eventually this will be expanded to autogenerate wx\-Windows source files for a control with all methods etc encapsulated. \end{Desc}
\begin{Desc}
\item[Usage: ]construct using a Prog\-Id or class id
\footnotesize\begin{verbatim} new wxActiveX(parent, CLSID_WebBrowser, id, pos, size, style, name)
\end{verbatim}\normalsize
\footnotesize\begin{verbatim} new wxActiveX(parent, "ShockwaveFlash.ShockwaveFlash", id, pos, size, style, name)
\end{verbatim}\normalsize
\end{Desc}
\begin{Desc}
\item[Properties]Properties can be set using {\tt {\bf Set\-Prop()}} and set/retrieved using {\tt {\bf Prop()}}
\footnotesize\begin{verbatim} SetProp(name, wxVariant(x))
\end{verbatim}\normalsize
or
\footnotesize\begin{verbatim} wxString Prop("<name>") = x
\end{verbatim}\normalsize
\footnotesize\begin{verbatim} wxString result = Prop("<name>")
\end{verbatim}\normalsize
\footnotesize\begin{verbatim} flash_ctl.Prop("movie") = "file:///movies/test.swf";
\end{verbatim}\normalsize
\footnotesize\begin{verbatim} flash_ctl.Prop("Playing") = false;
\end{verbatim}\normalsize
\footnotesize\begin{verbatim} wxString current_movie = flash_ctl.Prop("movie");
\end{verbatim}\normalsize
\end{Desc}
\begin{Desc}
\item[Methods]Methods are invoked with {\tt {\bf Call\-Method()}}
\footnotesize\begin{verbatim} wxVariant result = CallMethod("<name>", args, nargs = -1)
\end{verbatim}\normalsize
\footnotesize\begin{verbatim} wxVariant args[] = {0L, "file:///e:/dev/wxie/bug-zap.swf"};
wxVariant result = X->CallMethod("LoadMovie", args);
\end{verbatim}\normalsize
\end{Desc}
\begin{Desc}
\item[events]respond to events with the {\tt {\bf EVT\_\-ACTIVEX(control\-Id, event\-Name, handler)}} \& {\tt {\bf EVT\_\-ACTIVEX\_\-DISPID(control\-Id, event\-Disp\-Id, handler)}} macros
\footnotesize\begin{verbatim}
BEGIN_EVENT_TABLE(wxIEFrame, wxFrame)
EVT_ACTIVEX_DISPID(ID_MSHTML, DISPID_STATUSTEXTCHANGE, OnMSHTMLStatusTextChangeX)
EVT_ACTIVEX(ID_MSHTML, "BeforeNavigate2", OnMSHTMLBeforeNavigate2X)
EVT_ACTIVEX(ID_MSHTML, "TitleChange", OnMSHTMLTitleChangeX)
EVT_ACTIVEX(ID_MSHTML, "NewWindow2", OnMSHTMLNewWindow2X)
EVT_ACTIVEX(ID_MSHTML, "ProgressChange", OnMSHTMLProgressChangeX)
END_EVENT_TABLE()
\end{verbatim}\normalsize
\end{Desc}
Definition at line 329 of file wxactivex.h.\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
\index{wxActiveX@{wxActiveX}!wxActiveX@{wxActiveX}}\index{wxActiveX@{wxActiveX}!wxActiveX@{wxActiveX}}
{\bf wx\-Active\-X} (wx\-Window $\ast$parent, REFCLSID clsid, wx\-Window\-ID id=-1, const wx\-Point \&pos=wx\-Default\-Position, const wx\-Size \&size=wx\-Default\-Size, long style=0, const wx\-String \&name=wx\-Panel\-Name\-Str)\label{classwxActiveX_a0}
\begin{CompactList}\small\item\em Create using clsid.\item\end{CompactList}\item
\index{wxActiveX@{wxActiveX}!wxActiveX@{wxActiveX}}\index{wxActiveX@{wxActiveX}!wxActiveX@{wxActiveX}}
{\bf wx\-Active\-X} (wx\-Window $\ast$parent, wx\-String prog\-Id, wx\-Window\-ID id=-1, const wx\-Point \&pos=wx\-Default\-Position, const wx\-Size \&size=wx\-Default\-Size, long style=0, const wx\-String \&name=wx\-Panel\-Name\-Str)\label{classwxActiveX_a1}
\begin{CompactList}\small\item\em create using progid.\item\end{CompactList}\item
\index{GetEventCount@{GetEventCount}!wxActiveX@{wxActiveX}}\index{wxActiveX@{wxActiveX}!GetEventCount@{GetEventCount}}
int {\bf Get\-Event\-Count} () const\label{classwxActiveX_a3}
\begin{CompactList}\small\item\em Number of events defined for this control.\item\end{CompactList}\item
const {\bf Func\-X} \& {\bf Get\-Event\-Desc} (int idx) const
\begin{CompactList}\small\item\em returns event description by index.\item\end{CompactList}\item
\index{GetPropCount@{GetPropCount}!wxActiveX@{wxActiveX}}\index{wxActiveX@{wxActiveX}!GetPropCount@{GetPropCount}}
int {\bf Get\-Prop\-Count} () const\label{classwxActiveX_a5}
\begin{CompactList}\small\item\em Number of properties defined for this control.\item\end{CompactList}\item
const {\bf Prop\-X} \& {\bf Get\-Prop\-Desc} (int idx) const
\begin{CompactList}\small\item\em returns property description by index.\item\end{CompactList}\item
const {\bf Prop\-X} \& {\bf Get\-Prop\-Desc} (wx\-String name) const
\begin{CompactList}\small\item\em returns property description by name.\item\end{CompactList}\item
\index{GetMethodCount@{GetMethodCount}!wxActiveX@{wxActiveX}}\index{wxActiveX@{wxActiveX}!GetMethodCount@{GetMethodCount}}
int {\bf Get\-Method\-Count} () const\label{classwxActiveX_a8}
\begin{CompactList}\small\item\em Number of methods defined for this control.\item\end{CompactList}\item
const {\bf Func\-X} \& {\bf Get\-Method\-Desc} (int idx) const
\begin{CompactList}\small\item\em returns method description by name.\item\end{CompactList}\item
const {\bf Func\-X} \& {\bf Get\-Method\-Desc} (wx\-String name) const
\begin{CompactList}\small\item\em returns method description by name.\item\end{CompactList}\item
\index{SetProp@{SetProp}!wxActiveX@{wxActiveX}}\index{wxActiveX@{wxActiveX}!SetProp@{SetProp}}
void {\bf Set\-Prop} (MEMBERID name, VARIANTARG \&value)\label{classwxActiveX_a11}
\begin{CompactList}\small\item\em Set property VARIANTARG value by MEMBERID.\item\end{CompactList}\item
\index{SetProp@{SetProp}!wxActiveX@{wxActiveX}}\index{wxActiveX@{wxActiveX}!SetProp@{SetProp}}
void {\bf Set\-Prop} (const wx\-String \&name, const wx\-Variant \&value)\label{classwxActiveX_a12}
\begin{CompactList}\small\item\em Set property using wx\-Variant by name.\item\end{CompactList}\item
wx\-Property\-Setter {\bf Prop} (wx\-String name)
\begin{CompactList}\small\item\em Generic Get/Set Property by name. Automatically handles most types.\item\end{CompactList}\item
wx\-Variant {\bf Call\-Method} (wx\-String name, wx\-Variant args[$\,$], int nargs=-1)
\begin{CompactList}\small\item\em Call a method of the Active\-X control. Automatically handles most types.\item\end{CompactList}\end{CompactItemize}
\subsection*{Related Functions}
(Note that these are not member functions.)\begin{CompactItemize}
\item
bool {\bf MSWVariant\-To\-Variant} (VARIANTARG \&va, wx\-Variant \&vx)
\begin{CompactList}\small\item\em Convert MSW VARIANTARG to wx\-Variant. Handles basic types, need to add:\begin{itemize}
\item VT\_\-ARRAY $|$ VT\_\-$\ast$\item better support for VT\_\-UNKNOWN (currently treated as void $\ast$)\item better support for VT\_\-DISPATCH (currently treated as void $\ast$).\end{itemize}
\item\end{CompactList}\item
bool {\bf Variant\-To\-MSWVariant} (const wx\-Variant \&vx, VARIANTARG \&va)
\begin{CompactList}\small\item\em Convert wx\-Variant to MSW VARIANTARG. Handles basic types, need to add:\begin{itemize}
\item VT\_\-ARRAY $|$ VT\_\-$\ast$\item better support for VT\_\-UNKNOWN (currently treated as void $\ast$)\item better support for VT\_\-DISPATCH (currently treated as void $\ast$).\end{itemize}
\item\end{CompactList}\end{CompactItemize}
\subsection{Member Function Documentation}
\index{wxActiveX@{wx\-Active\-X}!GetEventDesc@{GetEventDesc}}
\index{GetEventDesc@{GetEventDesc}!wxActiveX@{wx\-Active\-X}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const {\bf Func\-X}\& wx\-Active\-X::Get\-Event\-Desc (int {\em idx}) const}\label{classwxActiveX_a4}
returns event description by index.
throws exception for invalid index \index{wxActiveX@{wx\-Active\-X}!GetPropDesc@{GetPropDesc}}
\index{GetPropDesc@{GetPropDesc}!wxActiveX@{wx\-Active\-X}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const {\bf Prop\-X}\& wx\-Active\-X::Get\-Prop\-Desc (int {\em idx}) const}\label{classwxActiveX_a6}
returns property description by index.
throws exception for invalid index \index{wxActiveX@{wx\-Active\-X}!GetPropDesc@{GetPropDesc}}
\index{GetPropDesc@{GetPropDesc}!wxActiveX@{wx\-Active\-X}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const {\bf Prop\-X}\& wx\-Active\-X::Get\-Prop\-Desc (wx\-String {\em name}) const}\label{classwxActiveX_a7}
returns property description by name.
throws exception for invalid name \index{wxActiveX@{wx\-Active\-X}!GetMethodDesc@{GetMethodDesc}}
\index{GetMethodDesc@{GetMethodDesc}!wxActiveX@{wx\-Active\-X}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const {\bf Func\-X}\& wx\-Active\-X::Get\-Method\-Desc (int {\em idx}) const}\label{classwxActiveX_a9}
returns method description by name.
throws exception for invalid index \index{wxActiveX@{wx\-Active\-X}!GetMethodDesc@{GetMethodDesc}}
\index{GetMethodDesc@{GetMethodDesc}!wxActiveX@{wx\-Active\-X}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const {\bf Func\-X}\& wx\-Active\-X::Get\-Method\-Desc (wx\-String {\em name}) const}\label{classwxActiveX_a10}
returns method description by name.
throws exception for invalid name \index{wxActiveX@{wx\-Active\-X}!Prop@{Prop}}
\index{Prop@{Prop}!wxActiveX@{wx\-Active\-X}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}wx\-Property\-Setter wx\-Active\-X::Prop (wx\-String {\em name})\hspace{0.3cm}{\tt [inline]}}\label{classwxActiveX_a13}
Generic Get/Set Property by name. Automatically handles most types.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em name}]Property name to read/set \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]wx\-Property\-Setter, which has overloads for setting/getting the property \end{Desc}
\begin{Desc}
\item[Usage:]\begin{itemize}
\item Prop(\char`\"{}$<$name$>$\char`\"{}) = $<$value$>$\item var = Prop(\char`\"{}$<$name$>$\char`\"{})\item e.g:\begin{itemize}
\item
\footnotesize\begin{verbatim} flash_ctl.Prop("movie") = "file:///movies/test.swf";
\end{verbatim}\normalsize
\item
\footnotesize\begin{verbatim} flash_ctl.Prop("Playing") = false;
\end{verbatim}\normalsize
\item
\footnotesize\begin{verbatim} wxString current_movie = flash_ctl.Prop("movie");
\end{verbatim}\normalsize
\end{itemize}
\end{itemize}
\end{Desc}
\begin{Desc}
\item[Exceptions:]
\begin{description}
\item[{\em raises}]exception if $<$name$>$ is invalid \end{description}
\end{Desc}
\begin{Desc}
\item[Note:]Have to add a few more type conversions yet ... \end{Desc}
Definition at line 458 of file wxactivex.h.\index{wxActiveX@{wx\-Active\-X}!CallMethod@{CallMethod}}
\index{CallMethod@{CallMethod}!wxActiveX@{wx\-Active\-X}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}wx\-Variant wx\-Active\-X::Call\-Method (wx\-String {\em name}, wx\-Variant {\em args}[$\,$], int {\em nargs} = -1)}\label{classwxActiveX_a26}
Call a method of the Active\-X control. Automatically handles most types.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em name}]name of method to call \item[{\em args}]array of wx\-Variant's, defaults to NULL (no args) \item[{\em nargs}]number of arguments passed via args. Defaults to actual number of args for the method \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]wx\-Variant \end{Desc}
\begin{Desc}
\item[Usage:]\begin{itemize}
\item result = Call\-Method(\char`\"{}$<$name$>$\char`\"{}, args, nargs)\item e.g.\item
\footnotesize\begin{verbatim}
wxVariant args[] = {0L, "file:///e:/dev/wxie/bug-zap.swf"};
wxVariant result = X->CallMethod("LoadMovie", args);
\end{verbatim}\normalsize
\end{itemize}
\end{Desc}
\begin{Desc}
\item[Exceptions:]
\begin{description}
\item[{\em raises}]exception if $<$name$>$ is invalid \end{description}
\end{Desc}
\begin{Desc}
\item[Note:]Since wx\-Variant has built in type conversion, most the std types can be passed easily \end{Desc}
\subsection{Friends And Related Function Documentation}
\index{wxActiveX@{wx\-Active\-X}!MSWVariantToVariant@{MSWVariantToVariant}}
\index{MSWVariantToVariant@{MSWVariantToVariant}!wxActiveX@{wx\-Active\-X}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool MSWVariant\-To\-Variant (VARIANTARG \& {\em va}, wx\-Variant \& {\em vx})\hspace{0.3cm}{\tt [related]}}\label{classwxActiveX_k0}
Convert MSW VARIANTARG to wx\-Variant. Handles basic types, need to add:\begin{itemize}
\item VT\_\-ARRAY $|$ VT\_\-$\ast$\item better support for VT\_\-UNKNOWN (currently treated as void $\ast$)\item better support for VT\_\-DISPATCH (currently treated as void $\ast$).\end{itemize}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em va}]VARAIANTARG to convert from \item[{\em vx}]Destination wx\-Variant \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]success/failure (true/false) \end{Desc}
\index{wxActiveX@{wx\-Active\-X}!VariantToMSWVariant@{VariantToMSWVariant}}
\index{VariantToMSWVariant@{VariantToMSWVariant}!wxActiveX@{wx\-Active\-X}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool Variant\-To\-MSWVariant (const wx\-Variant \& {\em vx}, VARIANTARG \& {\em va})\hspace{0.3cm}{\tt [related]}}\label{classwxActiveX_k1}
Convert wx\-Variant to MSW VARIANTARG. Handles basic types, need to add:\begin{itemize}
\item VT\_\-ARRAY $|$ VT\_\-$\ast$\item better support for VT\_\-UNKNOWN (currently treated as void $\ast$)\item better support for VT\_\-DISPATCH (currently treated as void $\ast$).\end{itemize}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em vx}]wx\-Variant to convert from \item[{\em va}]Destination VARIANTARG \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]success/failure (true/false) \end{Desc}
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
{\bf wxactivex.h}\end{CompactItemize}
@@ -0,0 +1,18 @@
\section{wx\-Active\-X::Func\-X Class Reference}
\label{classwxActiveX_1_1FuncX}\index{wxActiveX::FuncX@{wxActiveX::FuncX}}
{\tt \#include $<$wxactivex.h$>$}
\subsection{Detailed Description}
Type \& Parameter info for Events and Methods.
refer to FUNCDESC in MSDN
Definition at line 350 of file wxactivex.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
{\bf wxactivex.h}\end{CompactItemize}
@@ -0,0 +1,18 @@
\section{wx\-Active\-X::Param\-X Class Reference}
\label{classwxActiveX_1_1ParamX}\index{wxActiveX::ParamX@{wxActiveX::ParamX}}
{\tt \#include $<$wxactivex.h$>$}
\subsection{Detailed Description}
General parameter and return type infoformation for Events, Properties and Methods.
refer to ELEMDESC, IDLDESC in MSDN
Definition at line 333 of file wxactivex.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
{\bf wxactivex.h}\end{CompactItemize}
@@ -0,0 +1,16 @@
\section{wx\-Active\-X::Prop\-X Class Reference}
\label{classwxActiveX_1_1PropX}\index{wxActiveX::PropX@{wxActiveX::PropX}}
{\tt \#include $<$wxactivex.h$>$}
\subsection{Detailed Description}
Type info for properties.
Definition at line 362 of file wxactivex.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
{\bf wxactivex.h}\end{CompactItemize}
@@ -0,0 +1,85 @@
\section{wx\-Auto\-Ole\-Interface$<$ I $>$ Class Template Reference}
\label{classwxAutoOleInterface}\index{wxAutoOleInterface@{wxAutoOleInterface}}
{\tt \#include $<$wxactivex.h$>$}
\subsection{Detailed Description}
\subsubsection*{template$<$class I$>$ class wx\-Auto\-Ole\-Interface$<$ I $>$}
Template class for smart interface handling.
\begin{itemize}
\item Automatically dereferences ole interfaces\item Smart Copy Semantics\item Can Create Interfaces\item Can query for other interfaces \end{itemize}
Definition at line 45 of file wxactivex.h.\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
\index{wxAutoOleInterface@{wxAutoOleInterface}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!wxAutoOleInterface@{wxAutoOleInterface}}
{\bf wx\-Auto\-Ole\-Interface} (I $\ast$p\-Interface=NULL)\label{classwxAutoOleInterface_a0}
\begin{CompactList}\small\item\em takes ownership of an existing interface Assumed to already have a Add\-Ref() applied\item\end{CompactList}\item
\index{wxAutoOleInterface@{wxAutoOleInterface}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!wxAutoOleInterface@{wxAutoOleInterface}}
{\bf wx\-Auto\-Ole\-Interface} (REFIID riid, IUnknown $\ast$p\-Unk)\label{classwxAutoOleInterface_a1}
\begin{CompactList}\small\item\em queries for an interface\item\end{CompactList}\item
\index{wxAutoOleInterface@{wxAutoOleInterface}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!wxAutoOleInterface@{wxAutoOleInterface}}
{\bf wx\-Auto\-Ole\-Interface} (REFIID riid, IDispatch $\ast$p\-Dispatch)\label{classwxAutoOleInterface_a2}
\begin{CompactList}\small\item\em queries for an interface\item\end{CompactList}\item
\index{wxAutoOleInterface@{wxAutoOleInterface}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!wxAutoOleInterface@{wxAutoOleInterface}}
{\bf wx\-Auto\-Ole\-Interface} (REFCLSID clsid, REFIID riid)\label{classwxAutoOleInterface_a3}
\begin{CompactList}\small\item\em Creates an Interface.\item\end{CompactList}\item
\index{wxAutoOleInterface@{wxAutoOleInterface}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!wxAutoOleInterface@{wxAutoOleInterface}}
{\bf wx\-Auto\-Ole\-Interface} (const wx\-Auto\-Ole\-Interface$<$ I $>$ \&ti)\label{classwxAutoOleInterface_a4}
\begin{CompactList}\small\item\em copy constructor\item\end{CompactList}\item
\index{operator=@{operator=}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!operator=@{operator=}}
wx\-Auto\-Ole\-Interface$<$ I $>$ \& {\bf operator=} (const wx\-Auto\-Ole\-Interface$<$ I $>$ \&ti)\label{classwxAutoOleInterface_a5}
\begin{CompactList}\small\item\em assignment operator\item\end{CompactList}\item
\index{operator=@{operator=}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!operator=@{operator=}}
wx\-Auto\-Ole\-Interface$<$ I $>$ \& {\bf operator=} (I $\ast$\&ti)\label{classwxAutoOleInterface_a6}
\begin{CompactList}\small\item\em takes ownership of an existing interface Assumed to already have a Add\-Ref() applied\item\end{CompactList}\item
\index{~wxAutoOleInterface@{$\sim$wxAutoOleInterface}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!~wxAutoOleInterface@{$\sim$wxAutoOleInterface}}
{\bf $\sim$wx\-Auto\-Ole\-Interface} ()\label{classwxAutoOleInterface_a7}
\begin{CompactList}\small\item\em invokes {\bf Free()}\item\end{CompactList}\item
\index{Free@{Free}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!Free@{Free}}
void {\bf Free} ()\label{classwxAutoOleInterface_a8}
\begin{CompactList}\small\item\em Releases interface (i.e decrements ref\-Count).\item\end{CompactList}\item
\index{QueryInterface@{QueryInterface}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!QueryInterface@{QueryInterface}}
HRESULT {\bf Query\-Interface} (REFIID riid, IUnknown $\ast$p\-Unk)\label{classwxAutoOleInterface_a9}
\begin{CompactList}\small\item\em queries for an interface\item\end{CompactList}\item
\index{CreateInstance@{CreateInstance}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!CreateInstance@{CreateInstance}}
HRESULT {\bf Create\-Instance} (REFCLSID clsid, REFIID riid)\label{classwxAutoOleInterface_a10}
\begin{CompactList}\small\item\em Create a Interface instance.\item\end{CompactList}\item
\index{operator I *@{operator I $\ast$}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!operator I *@{operator I $\ast$}}
{\bf operator I $\ast$} () const\label{classwxAutoOleInterface_a11}
\begin{CompactList}\small\item\em returns the interface pointer\item\end{CompactList}\item
\index{operator->@{operator-$>$}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!operator->@{operator-$>$}}
I $\ast$ {\bf operator $\rightarrow$ } ()\label{classwxAutoOleInterface_a12}
\begin{CompactList}\small\item\em returns the dereferenced interface pointer\item\end{CompactList}\item
\index{GetRef@{GetRef}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!GetRef@{GetRef}}
I $\ast$$\ast$ {\bf Get\-Ref} ()\label{classwxAutoOleInterface_a13}
\begin{CompactList}\small\item\em returns a pointer to the interface pointer\item\end{CompactList}\item
\index{Ok@{Ok}!wxAutoOleInterface@{wxAutoOleInterface}}\index{wxAutoOleInterface@{wxAutoOleInterface}!Ok@{Ok}}
bool {\bf Ok} () const\label{classwxAutoOleInterface_a14}
\begin{CompactList}\small\item\em returns true if we have a valid interface pointer\item\end{CompactList}\end{CompactItemize}
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
{\bf wxactivex.h}\end{CompactItemize}
@@ -0,0 +1,65 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doxygen}
\RequirePackage{calc}
\RequirePackage{array}
\pagestyle{fancyplain}
\addtolength{\headwidth}{\marginparsep}
\addtolength{\headwidth}{\marginparwidth}
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\lhead[\fancyplain{}{\bfseries\thepage}]
{\fancyplain{}{\bfseries\rightmark}}
\rhead[\fancyplain{}{\bfseries\leftmark}]
{\fancyplain{}{\bfseries\thepage}}
\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Tue Apr 1 14:51:12 2003 for wx\-Active\-X by Doxygen }]{}
\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Tue Apr 1 14:51:12 2003 for wx\-Active\-X by Doxygen }}
\cfoot{}
\newenvironment{CompactList}
{\begin{list}{}{
\setlength{\leftmargin}{0.5cm}
\setlength{\itemsep}{0pt}
\setlength{\parsep}{0pt}
\setlength{\topsep}{0pt}
\renewcommand{\makelabel}{}}}
{\end{list}}
\newenvironment{CompactItemize}
{
\begin{itemize}
\setlength{\itemsep}{-3pt}
\setlength{\parsep}{0pt}
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}
}
{\end{itemize}}
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
\newlength{\tmplength}
\newenvironment{TabularC}[1]
{
\setlength{\tmplength}
{\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
\par\begin{tabular*}{\linewidth}
{*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
}
{\end{tabular*}\par}
\newcommand{\entrylabel}[1]{
{\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\\}}}
\newenvironment{Desc}
{\begin{list}{}
{
\settowidth{\labelwidth}{40pt}
\setlength{\leftmargin}{\labelwidth}
\setlength{\parsep}{0pt}
\setlength{\itemsep}{-4pt}
\renewcommand{\makelabel}{\entrylabel}
}
}
{\end{list}}
\newenvironment{Indent}
{\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
\item[]\ignorespaces}
{\unskip\end{list}}
\setlength{\parindent}{0cm}
\setlength{\parskip}{0.2cm}
\addtocounter{secnumdepth}{1}
\sloppy
@@ -0,0 +1,5 @@
\section{wx\-Active\-X File List}
Here is a list of all documented files with brief descriptions:\begin{CompactList}
\item\contentsline{section}{{\bf iehtmlwin.h} (Implements wx\-IEHtml\-Win window class)}{\pageref{iehtmlwin_8h}}{}
\item\contentsline{section}{{\bf wxactivex.h} (Implements {\bf wx\-Active\-X} window class and OLE tools)}{\pageref{wxactivex_8h}}{}
\end{CompactList}
@@ -0,0 +1,9 @@
\section{wx\-Active\-X Class Hierarchy}
This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList}
\item \contentsline{section}{NS\_\-wx\-Active\-X::less\_\-wx\-String\-I}{\pageref{structNS__wxActiveX_1_1less__wxStringI}}{}
\item \contentsline{section}{wx\-Active\-X}{\pageref{classwxActiveX}}{}
\item \contentsline{section}{wx\-Active\-X::Func\-X}{\pageref{classwxActiveX_1_1FuncX}}{}
\item \contentsline{section}{wx\-Active\-X::Param\-X}{\pageref{classwxActiveX_1_1ParamX}}{}
\item \contentsline{section}{wx\-Active\-X::Prop\-X}{\pageref{classwxActiveX_1_1PropX}}{}
\item \contentsline{section}{wx\-Auto\-Ole\-Interface$<$ I $>$}{\pageref{classwxAutoOleInterface}}{}
\end{CompactList}
@@ -0,0 +1,16 @@
\section{iehtmlwin.h File Reference}
\label{iehtmlwin_8h}\index{iehtmlwin.h@{iehtmlwin.h}}
\subsection{Detailed Description}
implements wx\-IEHtml\-Win window class
Definition in file {\bf iehtmlwin.h}.
{\tt \#include $<$wx/setup.h$>$}\par
{\tt \#include $<$wx/wx.h$>$}\par
{\tt \#include $<$exdisp.h$>$}\par
{\tt \#include $<$iostream$>$}\par
{\tt \#include \char`\"{}wxactivex.h\char`\"{}}\par
@@ -0,0 +1,14 @@
\section{NS\_\-wx\-Active\-X Namespace Reference}
\label{namespaceNS__wxActiveX}\index{NS_wxActiveX@{NS\_\-wxActiveX}}
\subsection{Detailed Description}
{\bf wx\-Active\-X} Namespace for stuff I want to keep out of other tools way.
\subsection*{Data Structures}
\begin{CompactItemize}
\item
struct {\bf less\_\-wx\-String\-I}
\begin{CompactList}\small\item\em STL utilty class.\item\end{CompactList}\end{CompactItemize}
@@ -0,0 +1,4 @@
\section{wx\-Active\-X Namespace List}
Here is a list of all documented namespaces with brief descriptions:\begin{CompactList}
\item\contentsline{section}{{\bf NS\_\-wx\-Active\-X} (Wx\-Active\-X Namespace for stuff I want to keep out of other tools way)}{\pageref{namespaceNS__wxActiveX}}{}
\end{CompactList}
@@ -0,0 +1,51 @@
\documentclass[a4paper]{book}
\usepackage{a4wide}
\usepackage{makeidx}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{float}
\usepackage{textcomp}
\usepackage{alltt}
\usepackage{doxygen}
\makeindex
\setcounter{tocdepth}{1}
\setlength{\footrulewidth}{0.4pt}
\begin{document}
\begin{titlepage}
\vspace*{7cm}
\begin{center}
{\Large wx\-Active\-X Reference Manual}\\
\vspace*{1cm}
{\large Generated by Doxygen 1.3-rc3}\\
\vspace*{0.5cm}
{\small Tue Apr 1 14:51:12 2003}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\pagenumbering{roman}
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
\chapter{wx\-Active\-X Namespace Index}
\input{namespaces}
\chapter{wx\-Active\-X Hierarchical Index}
\input{hierarchy}
\chapter{wx\-Active\-X Data Structure Index}
\input{annotated}
\chapter{wx\-Active\-X File Index}
\input{files}
\chapter{wx\-Active\-X Namespace Documentation}
\input{namespaceNS__wxActiveX}
\chapter{wx\-Active\-X Data Structure Documentation}
\input{structNS__wxActiveX_1_1less__wxStringI}
\include{classwxActiveX}
\include{classwxActiveX_1_1FuncX}
\include{classwxActiveX_1_1ParamX}
\include{classwxActiveX_1_1PropX}
\include{classwxAutoOleInterface}
\chapter{wx\-Active\-X File Documentation}
\input{iehtmlwin_8h}
\include{wxactivex_8h}
\printindex
\end{document}
@@ -0,0 +1,18 @@
\section{NS\_\-wx\-Active\-X::less\_\-wx\-String\-I Struct Reference}
\label{structNS__wxActiveX_1_1less__wxStringI}\index{NS_wxActiveX::less_wxStringI@{NS\_\-wxActiveX::less\_\-wxStringI}}
{\tt \#include $<$wxactivex.h$>$}
\subsection{Detailed Description}
STL utilty class.
specific to {\bf wx\-Active\-X}, for creating case insenstive maps etc
Definition at line 29 of file wxactivex.h.
The documentation for this struct was generated from the following file:\begin{CompactItemize}
\item
{\bf wxactivex.h}\end{CompactItemize}
@@ -0,0 +1,139 @@
\section{wxactivex.h File Reference}
\label{wxactivex_8h}\index{wxactivex.h@{wxactivex.h}}
\subsection{Detailed Description}
implements {\bf wx\-Active\-X} window class and OLE tools
Definition in file {\bf wxactivex.h}.
{\tt \#include $<$wx/setup.h$>$}\par
{\tt \#include $<$wx/wx.h$>$}\par
{\tt \#include $<$wx/variant.h$>$}\par
{\tt \#include $<$wx/datetime.h$>$}\par
{\tt \#include $<$oleidl.h$>$}\par
{\tt \#include $<$exdisp.h$>$}\par
{\tt \#include $<$docobj.h$>$}\par
{\tt \#include $<$iostream$>$}\par
{\tt \#include $<$vector$>$}\par
{\tt \#include $<$map$>$}\par
\subsection*{Namespaces}
\begin{CompactItemize}
\item
namespace {\bf NS\_\-wx\-Active\-X}
\item
namespace {\bf std}
\end{CompactItemize}
\subsection*{Data Structures}
\begin{CompactItemize}
\item
class {\bf wx\-Auto\-Ole\-Interface}
\begin{CompactList}\small\item\em Template class for smart interface handling.\item\end{CompactList}\item
class {\bf wx\-Active\-X}
\begin{CompactList}\small\item\em Main class for embedding a Active\-X control.\item\end{CompactList}\item
class {\bf Param\-X}
\begin{CompactList}\small\item\em General parameter and return type infoformation for Events, Properties and Methods.\item\end{CompactList}\item
class {\bf Func\-X}
\begin{CompactList}\small\item\em Type \& Parameter info for Events and Methods.\item\end{CompactList}\item
class {\bf Prop\-X}
\begin{CompactList}\small\item\em Type info for properties.\item\end{CompactList}\end{CompactItemize}
\subsection*{Defines}
\begin{CompactItemize}
\item
\index{EVT_ACTIVEX@{EVT\_\-ACTIVEX}!wxactivex.h@{wxactivex.h}}\index{wxactivex.h@{wxactivex.h}!EVT_ACTIVEX@{EVT\_\-ACTIVEX}}
\#define {\bf EVT\_\-ACTIVEX}(id, event\-Name, fn)\ DECLARE\_\-EVENT\_\-TABLE\_\-ENTRY(Register\-Active\-XEvent(wx\-T(event\-Name)), id, -1, (wx\-Object\-Event\-Function) (wx\-Event\-Function) (wx\-Active\-XEvent\-Function) \& fn, (wx\-Object $\ast$) NULL ),\label{wxactivex_8h_a10}
\begin{CompactList}\small\item\em Event handle for events by name.\item\end{CompactList}\item
\index{EVT_ACTIVEX_DISPID@{EVT\_\-ACTIVEX\_\-DISPID}!wxactivex.h@{wxactivex.h}}\index{wxactivex.h@{wxactivex.h}!EVT_ACTIVEX_DISPID@{EVT\_\-ACTIVEX\_\-DISPID}}
\#define {\bf EVT\_\-ACTIVEX\_\-DISPID}(id, event\-Disp\-Id, fn)\ DECLARE\_\-EVENT\_\-TABLE\_\-ENTRY(Register\-Active\-XEvent(event\-Disp\-Id), id, -1, (wx\-Object\-Event\-Function) (wx\-Event\-Function) (wx\-Active\-XEvent\-Function) \& fn, (wx\-Object $\ast$) NULL ),\label{wxactivex_8h_a11}
\begin{CompactList}\small\item\em Event handle for events by DISPID (dispath id).\item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item
\index{OLEHResultToString@{OLEHResultToString}!wxactivex.h@{wxactivex.h}}\index{wxactivex.h@{wxactivex.h}!OLEHResultToString@{OLEHResultToString}}
wx\-String {\bf OLEHResult\-To\-String} (HRESULT hr)\label{wxactivex_8h_a13}
\begin{CompactList}\small\item\em Converts a std HRESULT to its error code. Hardcoded, by no means a definitive list.\item\end{CompactList}\item
\index{GetIIDName@{GetIIDName}!wxactivex.h@{wxactivex.h}}\index{wxactivex.h@{wxactivex.h}!GetIIDName@{GetIIDName}}
wx\-String {\bf Get\-IIDName} (REFIID riid)\label{wxactivex_8h_a14}
\begin{CompactList}\small\item\em Returns the string description of a IID. Hardcoded, by no means a definitive list.\item\end{CompactList}\end{CompactItemize}
\subsection{Define Documentation}
\index{wxactivex.h@{wxactivex.h}!DECLARE_OLE_UNKNOWN@{DECLARE\_\-OLE\_\-UNKNOWN}}
\index{DECLARE_OLE_UNKNOWN@{DECLARE\_\-OLE\_\-UNKNOWN}!wxactivex.h@{wxactivex.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define DECLARE\_\-OLE\_\-UNKNOWN(cls)}\label{wxactivex_8h_a3}
{\bf Value:}
\footnotesize\begin{verbatim}private:\
class TAutoInitInt\
{\
public:\
LONG l;\
TAutoInitInt() : l(0) {}\
};\
TAutoInitInt refCount, lockCount;\
wxOleInit oleInit;\
static void _GetInterface(cls *self, REFIID iid, void **_interface, const char *&desc);\
public:\
LONG GetRefCount();\
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void ** ppvObject);\
ULONG STDMETHODCALLTYPE AddRef();\
ULONG STDMETHODCALLTYPE Release();\
ULONG STDMETHODCALLTYPE AddLock();\
ULONG STDMETHODCALLTYPE ReleaseLock()
\end{verbatim}\normalsize
Definition at line 184 of file wxactivex.h.\index{wxactivex.h@{wxactivex.h}!DEFINE_OLE_BASE@{DEFINE\_\-OLE\_\-BASE}}
\index{DEFINE_OLE_BASE@{DEFINE\_\-OLE\_\-BASE}!wxactivex.h@{wxactivex.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define DEFINE\_\-OLE\_\-BASE(cls)}\label{wxactivex_8h_a5}
{\bf Value:}
\footnotesize\begin{verbatim}void cls::_GetInterface(cls *self, REFIID iid, void **_interface, const char *&desc)\
{\
*_interface = NULL;\
desc = NULL;
\end{verbatim}\normalsize
Definition at line 264 of file wxactivex.h.\index{wxactivex.h@{wxactivex.h}!OLE_INTERFACE@{OLE\_\-INTERFACE}}
\index{OLE_INTERFACE@{OLE\_\-INTERFACE}!wxactivex.h@{wxactivex.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define OLE\_\-INTERFACE(\_\-iid, \_\-type)}\label{wxactivex_8h_a6}
{\bf Value:}
\footnotesize\begin{verbatim}if (IsEqualIID(iid, _iid))\
{\
WXOLE_TRACE("Found Interface <" # _type ">");\
*_interface = (IUnknown *) (_type *) self;\
desc = # _iid;\
return;\
}
\end{verbatim}\normalsize
Definition at line 270 of file wxactivex.h.\index{wxactivex.h@{wxactivex.h}!OLE_INTERFACE_CUSTOM@{OLE\_\-INTERFACE\_\-CUSTOM}}
\index{OLE_INTERFACE_CUSTOM@{OLE\_\-INTERFACE\_\-CUSTOM}!wxactivex.h@{wxactivex.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define OLE\_\-INTERFACE\_\-CUSTOM(func)}\label{wxactivex_8h_a8}
{\bf Value:}
\footnotesize\begin{verbatim}if (func(self, iid, _interface, desc))\
{\
return;\
}
\end{verbatim}\normalsize
Definition at line 281 of file wxactivex.h.
+53
View File
@@ -0,0 +1,53 @@
wxActiveX Library Licence, Version 3
====================================
Copyright (C) 2003 Lindsay Mathieson [, ...]
Everyone is permitted to copy and distribute verbatim copies
of this licence document, but changing it is not allowed.
wxActiveX LIBRARY LICENCE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public Licence as published by
the Free Software Foundation; either version 2 of the Licence, or (at
your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
General Public Licence for more details.
You should have received a copy of the GNU Library General Public Licence
along with this software, usually in a file named COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA.
EXCEPTION NOTICE
1. As a special exception, the copyright holders of this library give
permission for additional uses of the text contained in this release of
the library as licenced under the wxActiveX Library Licence, applying
either version 3 of the Licence, or (at your option) any later version of
the Licence as published by the copyright holders of version 3 of the
Licence document.
2. The exception is that you may use, copy, link, modify and distribute
under the user's own terms, binary object code versions of works based
on the Library.
3. If you copy code from files distributed under the terms of the GNU
General Public Licence or the GNU Library General Public Licence into a
copy of this library, as this licence permits, the exception does not
apply to the code that you add in this way. To avoid misleading anyone as
to the status of such modified files, you must delete this exception
notice from such code and/or adjust the licensing conditions notice
accordingly.
4. If you write modifications of your own for this library, it is your
choice whether to permit this exception to apply to your modifications.
If you do not wish that, you must delete the exception notice from such
code and/or adjust the licensing conditions notice accordingly.
+24
View File
@@ -0,0 +1,24 @@
CC = gcc
PROGRAM = wxIE
CFLAGS = -I/m/snowball/icicle/gswd/devenv/include -D__WXMOTIF__
LFLAGS = -L/m/snowball/icicle/devenv/lib
# implementation
.SUFFIXES: .o .cpp
SOURCES:sh= /bin/ls *.cpp
OBJECTS = $(SOURCES:.cpp=.o)
.cpp.o :
$(CC) -c $(CFLAGS) `wx-config --cflags` -o $@ $<
$(PROGRAM): $(OBJECTS)
$(CC) -o $(PROGRAM) $(OBJECTS) $(LFLAGS) `wx-config --libs`
clean:
rm -f *.o $(PROGRAM)

Some files were not shown because too many files have changed in this diff Show More