]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wxAutomationObject documentation, changed some BC++ makefiles
authorJulian Smart <julian@anthemion.co.uk>
Tue, 8 Dec 1998 18:59:52 +0000 (18:59 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Tue, 8 Dec 1998 18:59:52 +0000 (18:59 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1135 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

distrib/msw/msw.rsp
distrib/msw/zipdist.bat
docs/latex/wx/autoobj.tex [new file with mode: 0644]
docs/latex/wx/category.tex
docs/latex/wx/classes.tex
docs/msw/install.txt
utils/ogl/samples/ogledit/makefile.b32
utils/serialize/makefile.b32
utils/wxMMedia/makefile.b32
utils/wxprop/src/makefile.b32
utils/wxtree/src/makefile.b32

index 88c7fa821a8260090b9a5bc320f962a23abfeed6..0856bf7ab525b2067aa55a795966fa3317d96543 100644 (file)
@@ -110,6 +110,15 @@ samples/joytest/*.bmp
 samples/joytest/*.wav
 samples/joytest/*.ico
 
+samples/oleauto/*.h
+samples/oleauto/*.cpp
+samples/oleauto/*.def
+samples/oleauto/*.rc
+samples/oleauto/makefile.*
+samples/oleauto/*.txt
+samples/oleauto/*.bmp
+samples/oleauto/*.ico
+
 utils/nplugin/make*.*
 utils/nplugin/src/*.cpp
 utils/nplugin/src/*.h
index 3e2052121bfd33c695351e05c81a847ad66d1dd7..c8d45b6174ead19350c393096acad437229d13d1 100755 (executable)
@@ -24,6 +24,7 @@ zip32 -@ %dest\wx200doc.zip < %src\distrib\msw\docsrc.rsp
 zip32 -@ %dest\wx200hlp.zip < %src\distrib\msw\wx_hlp.rsp
 zip32 -@ %dest\wx200htm.zip < %src\distrib\msw\wx_html.rsp
 zip32 -@ %dest\wx200pdf.zip < %src\distrib\msw\wx_pdf.rsp
+zip32 -@ %dest\wx200wrd.zip < %src\distrib\msw\wx_word.rsp
 
 zip32 -@ %dest\wx200vc.zip < %src\distrib\msw\vc.rsp
 
diff --git a/docs/latex/wx/autoobj.tex b/docs/latex/wx/autoobj.tex
new file mode 100644 (file)
index 0000000..9f87955
--- /dev/null
@@ -0,0 +1,210 @@
+\section{\class{wxAutomationObject}}\label{wxautomationobject}
+
+The {\bf wxAutomationObject} class represents an OLE automation object containing a single data member,
+an IDispatch pointer. It contains a number of functions that make it easy to perform
+automation operations, and set and get properties. The class makes heavy use of the \helpref{wxVariant}{wxvariant} class.
+
+The usage of these classes is quite close to OLE automation usage in Visual Basic. The API is
+high-level, and the application can specify multiple properties in a single string. The following example
+gets the current Excel instance, and if it exists, makes the active cell bold.
+
+{\small
+\begin{verbatim}
+  wxAutomationObject excelObject;
+  if (excelObject.GetInstance("Excel.Application"))
+      excelObject.PutProperty("ActiveCell.Font.Bold", TRUE);
+\end{verbatim}
+}
+
+Note that this class works under Windows only, and currently only for Visual C++.
+
+\wxheading{Derived from}
+
+\helpref{wxObject}{wxobject}
+
+\wxheading{See also}
+
+\helpref{wxVariant}{wxvariant}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxAutomationObject::wxAutomationObject}\label{wxautomationobjectctor}
+
+\func{}{wxAutomationObject}{\param{WXIDISPATCH*}{ dispatchPtr = NULL}}
+
+Constructor, taking an optional IDispatch pointer which will be released when the
+object is deleted.
+
+\membersection{wxAutomationObject::\destruct{wxAutomationObject}}\label{wxautomationobjectdtor}
+
+\func{}{\destruct{wxAutomationObject}}{\void}
+
+Destructor. If the internal IDispatch pointer is non-null, it will be released.
+
+\membersection{wxAutomationObject::CallMethod}\label{wxautomationobjectcallmethod}
+
+\constfunc{wxVariant}{CallMethod}{\param{const wxString\&}{ method}, \param{int}{ noArgs},
+ \param{wxVariant }{args[]}}
+
+\constfunc{wxVariant}{CallMethod}{\param{const wxString\&}{ method}, \param{...}{}}
+
+Calls an automation method for this object. The first form takes a method name, number of
+arguments, and an array of variants. The second form takes a method name and zero to six
+constant references to variants. Since the variant class has constructors for the basic
+data types, and C++ provides temporary objects automatically, both of the following lines
+are syntactically valid:
+
+{\small
+\begin{verbatim}
+  wxVariant res = obj.CallMethod("Sum", wxVariant(1.2), wxVariant(3.4));
+  wxVariant res = obj.CallMethod("Sum", 1.2, 3.4);
+\end{verbatim}
+}
+
+Note that {\it method} can contain dot-separated property names, to save the application
+needing to call GetProperty several times using several temporary objects. For example:
+
+{\small
+\begin{verbatim}
+  object.CallMethod("ActiveCell.Font.ShowDialog", "My caption");
+\end{verbatim}
+}
+
+\membersection{wxAutomationObject::ConvertOleToVariant}\label{wxautomationobjectconvertoletovariant}
+
+\constfunc{bool}{ConvertOleToVariant}{\param{const VARIANTARG\&}{ oleVariant}, \param{const wxVariant\&}{ variant}}
+
+Converts the given VARIANTARG object to a wxVariant. IDispatch pointers are converted to the ``void*" type.
+
+\membersection{wxAutomationObject::ConvertVariantToOle}\label{wxautomationobjectconvertvarianttoole}
+
+\constfunc{bool}{ConvertVariantToOle}{\param{const wxVariant\&}{ variant}, \param{VARIANTARG\&}{ oleVariant}}
+
+Converts the given wxVariant object to a VARIANTARG. The ``void*" type is assumed to be an
+IDispatch pointer.
+
+\membersection{wxAutomationObject::CreateInstance}\label{wxautomationobjectcreateinstance}
+
+\constfunc{bool}{CreateInstance}{\param{const wxString\&}{ classId}}
+
+Creates a new object based on the class id, returning TRUE if the object was successfully created,
+or FALSE if not.
+
+\membersection{wxAutomationObject::GetDispatchPtr}\label{wxautomationobjectgetdispatchptr}
+
+\constfunc{IDispatch*}{GetDispatchPtr}{\void}
+
+Gets the IDispatch pointer.
+
+\membersection{wxAutomationObject::GetInstance}\label{wxautomationobjectgetinstance}
+
+\constfunc{bool}{GetInstance}{\param{const wxString\&}{ classId}}
+
+Retrieves the current object associated with a class id, and attaches the IDispatch pointer
+to this object. Returns TRUE if a pointer was succesfully retrieved, FALSE otherwise.
+
+Note that this cannot cope with two instances of a given OLE object being active simultaneously,
+such as two copies of Excel running. Which object is referenced cannot currently be specified.
+
+\membersection{wxAutomationObject::GetObject}\label{wxautomationobjectgetobject}
+
+\constfunc{bool}{GetObject}{\param{wxAutomationObject\&}{obj} \param{const wxString\&}{ property},
+ \param{int}{ noArgs = 0}, \param{wxVariant }{args[] = NULL}}
+
+Retrieves a property from this object, assumed to be a dispatch pointer, and initialises {\it obj} with it.
+To avoid having to deal with IDispatch pointers directly, use this function in preference
+to \helpref{wxAutomationObject::GetProperty}{wxautomationobjectgetproperty} when retrieving objects
+from other objects.
+
+Note that an IDispatch pointer is stored as a void* pointer in wxVariant objects.
+
+\wxheading{See also}
+
+\helpref{wxAutomationObject::GetProperty}{wxautomationobjectgetproperty}
+
+\membersection{wxAutomationObject::GetProperty}\label{wxautomationobjectgetproperty}
+
+\constfunc{wxVariant}{GetProperty}{\param{const wxString\&}{ property}, \param{int}{ noArgs},
+ \param{wxVariant }{args[]}}
+
+\constfunc{wxVariant}{GetProperty}{\param{const wxString\&}{ property}, \param{...}{}}
+
+Gets a property value from this object. The first form takes a property name, number of
+arguments, and an array of variants. The second form takes a property name and zero to six
+constant references to variants. Since the variant class has constructors for the basic
+data types, and C++ provides temporary objects automatically, both of the following lines
+are syntactically valid:
+
+{\small
+\begin{verbatim}
+  wxVariant res = obj.GetProperty("Range", wxVariant("A1"));
+  wxVariant res = obj.GetProperty("Range", "A1");
+\end{verbatim}
+}
+
+Note that {\it property} can contain dot-separated property names, to save the application
+needing to call GetProperty several times using several temporary objects.
+
+\membersection{wxAutomationObject::Invoke}\label{wxautomationobjectinvoke}
+
+\constfunc{bool}{Invoke}{\param{const wxString\&}{ member}, \param{int}{ action},
+ \param{wxVariant\& }{retValue}, \param{int}{ noArgs}, \param{wxVariant}{ args[]},
+ \param{const wxVariant*}{ ptrArgs[] = 0}}
+
+This function is a low-level implementation that allows access to the IDispatch Invoke function.
+It is not meant to be called directly by the application, but is used by other convenience functions.
+
+\wxheading{Parameters}
+
+\docparam{member}{The member function or property name.}
+
+\docparam{action}{Bitlist: may contain DISPATCH\_PROPERTYPUT, DISPATCH\_PROPERTYPUTREF,
+DISPATCH\_METHOD.}
+
+\docparam{retValue}{Return value (ignored if there is no return value)}.
+
+\docparam{noArgs}{Number of arguments in {\it args} or {\it ptrArgs}.}
+
+\docparam{args}{If non-null, contains an array of variants.}
+
+\docparam{ptrArgs}{If non-null, contains an array of constant pointers to variants.}
+
+\wxheading{Return value}
+
+TRUE if the operation was successful, FALSE otherwise.
+
+\wxheading{Remarks}
+
+Two types of argument array are provided, so that when possible pointers are used for efficiency.
+
+\membersection{wxAutomationObject::PutProperty}\label{wxautomationobjectputproperty}
+
+\constfunc{bool}{PutProperty}{\param{const wxString\&}{ property}, \param{int}{ noArgs},
+ \param{wxVariant }{args[]}}
+
+\func{bool}{PutProperty}{\param{const wxString\&}{ property}, \param{...}{}}
+
+Puts a property value into this object. The first form takes a property name, number of
+arguments, and an array of variants. The second form takes a property name and zero to six
+constant references to variants. Since the variant class has constructors for the basic
+data types, and C++ provides temporary objects automatically, both of the following lines
+are syntactically valid:
+
+{\small
+\begin{verbatim}
+  obj.PutProperty("Value", wxVariant(23));
+  obj.PutProperty("Value", 23);
+\end{verbatim}
+}
+
+Note that {\it property} can contain dot-separated property names, to save the application
+needing to call GetProperty several times using several temporary objects.
+
+\membersection{wxAutomationObject::SetDispatchPtr}\label{wxautomationobjectsetdispatchptr}
+
+\func{void}{SetDispatchPtr}{\param{WXIDISPATCH*}{ dispatchPtr}}
+
+Sets the IDispatch pointer. This function does not check if there is already an IDispatch pointer.
+
+You may need to cast from IDispatch* to WXIDISPATCH* when calling this function.
+
index 0bddf8cb7c3efc66429f0a1d64d545749806490f..0caaa8e29c75de87494080739a971ed1ab1c1ea4 100644 (file)
@@ -330,6 +330,7 @@ product.
 \begin{twocollist}\itemsep=0pt
 \twocolitem{\helpref{wxAcceleratorTable}{wxacceleratortable}}{Accelerator table}
 \twocolitem{\helpref{wxApp}{wxapp}}{Application class}
+\twocolitem{\helpref{wxAutomationObject}{wxautomationobject}}{OLE automation class}
 \twocolitem{\helpref{wxConfig}{wxconfigbase}}{Classes for configuration reading/writing}
 \twocolitem{\helpref{wxHelpController}{wxhelpcontroller}}{Family of classes for controlling help windows}
 \twocolitem{\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}}{An alternative window layout facility}
index e0461681bd298fa1ba3c91eafb84f42f0d3a603f..3c434bb4de0e2f61beb6a20bd70156e309df8273 100644 (file)
@@ -30,6 +30,7 @@ $$\image{14cm;0cm}{wxclass.ps}$$
 \input accel.tex
 \input activevt.tex
 \input app.tex
+\input autoobj.tex
 \input button.tex
 \input bitmap.tex
 \input bbutton.tex
index 532c2d907d8ef93c4e13925ee7702768d438bd32..bae42ad73f9c580360d644328a7afbba55d93b72 100644 (file)
@@ -159,4 +159,4 @@ Notes
 
         http://ftp.digital.com/pub/micro/NT/WinSite/programr/dbwin32.zip
 
-  and it's also on the wxWindows CD-ROM.
+  and it's also on the wxWindows CD-ROM under Packages.
index ea10bbf38bfdb1c69bd6084d3576c9b7eaaeee23..fda48cda63ceedc0c5875e2fd7848ecf207fa7b2 100644 (file)
@@ -31,7 +31,7 @@ OGLINC = $(OGLDIR)\src
 OGLLIB = $(WXDIR)\lib\ogl.lib
 
 WXLIB = $(WXDIR)\lib\wx32.lib
-LIBS=$(WXLIB) $(OGLLIB) cw32 import32
+LIBS=$(WXLIB) $(OGLLIB) cw32 import32 ole2w32
 INC=/I$(OGLINC)
 CFG=$(WXDIR)\src\wxwin32.cfg
 
index 330b4b123599212b56d359a7a29f31052db9b3cc..70164500760420e3975d56e12533a4e0cb614f8d 100644 (file)
@@ -20,7 +20,7 @@ WXUSINGDLL=1
 !include $(WXDIR)\src\makeb32.env
 
 WXLIBDIR = $(WXDIR)\lib
-LIBS=$(WXLIB) cw32 import32
+LIBS=$(WXLIB) cw32 import32 ole2w32
 
 !ifndef DEBUG
 DEBUG=0
index 21b5374aa2341532ef35032b1bcef17dd9bf7ab7..5a396a0522383a813215b274a6c2d902e4e77fe5 100644 (file)
@@ -19,7 +19,7 @@ WXLIB = $(WXDIR)\lib\wx32.lib
 WXINC = $(WXDIR)\include\msw
 WXBASESRC = $(WXDIR)\src\base
 WXBASEINC = $(WXDIR)\include\base
-LIBS=$(WXLIB) cw32 import32
+LIBS=$(WXLIB) cw32 import32 ole2w32
 
 !ifndef DEBUG
 DEBUG=0
index 6520bd5c60eade851fef85895f4830e42cab6209..5576657e1ca09d7efcf69750842659e803a1de23 100644 (file)
@@ -17,7 +17,7 @@ WXINC = $(WXDIR)\include
 TARGET=test
 TESTOBJECTS=test.obj
 LIBTARGET= $(WXLIBDIR)\wxprop.lib
-LIBS=$(WXLIB)\wx32.lib $(LIBTARGET) cw32 import32
+LIBS=$(WXLIB)\wx32.lib $(LIBTARGET) cw32 import32 ole2w32
 
 !ifndef DEBUG
 DEBUG=0
index bb7a97aeb2c3de704960d764ea9fbf51fbadb9b1..a830b94d4d4cd27319f869cbf0e280f978f5a9fd 100644 (file)
@@ -16,7 +16,7 @@ WXINC = $(WXDIR)\include
 TARGET=test
 TESTOBJECTS=test.obj
 LIBTARGET= $(WXLIBDIR)\wxprop.lib
-LIBS=$(WXLIB)\wx32.lib $(LIBTARGET) cw32 import32
+LIBS=$(WXLIB)\wx32.lib $(LIBTARGET) cw32 import32 ole2w32
 
 !ifndef DEBUG
 DEBUG=0