%% Created: 14.01.02 (extracted from dllload.tex)
%% RCS-ID: $Id$
%% Copyright: (c) Vadim Zeitlin
-%% License: wxWidgets license
+%% License: wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\class{wxDynamicLibrary}}\label{wxdynamiclibrary}
this class to load a library and don't worry about unloading it -- it will be
done in the objects destructor automatically.
-% deprecated now...
-%
-%\wxheading{See also}
-%
-%\helpref{wxDllLoader}{wxdllloader}
-
\wxheading{Derived from}
No base class.
\membersection{wxDynamicLibrary::CanonicalizeName}\label{wxdynamiclibrarycanonicalizename}
-\func{wxString}{CanonicalizeName}{\param{const wxString\& }{name}, \param{wxDynamicLibraryCategory}{ cat = wxDL\_LIBRARY}}
+\func{static wxString}{CanonicalizeName}{\param{const wxString\& }{name}, \param{wxDynamicLibraryCategory}{ cat = wxDL\_LIBRARY}}
Returns the platform-specific full name for the library called \arg{name}. E.g.
it adds a {\tt ".dll"} extension under Windows and {\tt "lib"} prefix and
\membersection{wxDynamicLibrary::CanonicalizePluginName}\label{wxdynamiclibrarycanonicalizepluginname}
-\func{wxString}{CanonicalizePluginName}{\param{const wxString\& }{name}, \param{wxPluginCategory}{ cat = wxDL\_PLUGIN\_GUI}}
+\func{static wxString}{CanonicalizePluginName}{\param{const wxString\& }{name}, \param{wxPluginCategory}{ cat = wxDL\_PLUGIN\_GUI}}
This function does the same thing as
\helpref{CanonicalizeName}{wxdynamiclibrarycanonicalizename} but for wxWidgets
Detaches this object from its library handle, i.e. the object will not unload
the library any longer in its destructor but it is now the callers
-responsability to do this using \helpref{Unload}{wxdynamiclibraryunload}.
+responsibility to do this using \helpref{Unload}{wxdynamiclibraryunload}.
\membersection{wxDynamicLibrary::GetSymbol}\label{wxdynamiclibrarygetsymbol}
\helpref{wxDYNLIB\_FUNCTION}{wxdynlibfunction}
+\membersection{wxDynamicLibrary::GetSymbolAorW}\label{wxdynamiclibrarygetsymbolaorw}
+
+\constfunc{void *}{GetSymbolAorW}{\param{const wxString\& }{name}}
+
+This function is available only under Windows as it is only useful when
+dynamically loading symbols from standard Windows DLLs. Such functions have
+either \texttt{'A'} (in ANSI build) or \texttt{'W'} (in Unicode, or wide
+character build) suffix if they take string parameters. Using this function you
+can use just the base name of the function and the correct suffix is appende
+automatically depending on the current build. Otherwise, this method is
+identical to \helpref{GetSymbol}{wxdynamiclibrarygetsymbol}.
+
+
+\membersection{wxDynamicLibrary::GetProgramHandle}\label{wxdynamiclibrarygetprogramhandle}
+
+\func{static wxDllType}{GetProgramHandle}{\void}
+
+Return a valid handle for the main program itself or \texttt{NULL} if symbols
+from the main program can't be loaded on this platform.
+
+
\membersection{wxDynamicLibrary::HasSymbol}\label{wxdynamiclibraryhassymbol}
\constfunc{bool}{HasSymbol}{\param{const wxString\& }{name}}
This static method returns an \helpref{array}{wxarray} containing the details
of all modules loaded into the address space of the current project, the array
elements are object of \texttt{wxDynamicLibraryDetails} class. The array will
-be empty if an error occured.
+be empty if an error occurred.
-This method is currently only implemented under Win32 and is useful mostly for
-diagnostics purposes.
+This method is currently implemented only under Win32 and Linux and is useful
+mostly for diagnostics purposes.
\membersection{wxDynamicLibrary::Load}\label{wxdynamiclibraryload}
\twocolitem{wxDL\_GLOBAL}{equivalent of RTLD\_GLOBAL under Unix, ignored elsewhere}
\twocolitem{wxDL\_VERBATIM}{don't try to append the appropriate extension to
the library name (this is done by default).}
+\twocolitem{wxDL\_DEFAULT}{default flags, same as wxDL\_NOW currently}
\end{twocollist}
Returns \true if the library was successfully loaded, \false otherwise.