\hypertarget{a00458}{}\doxysection{AAX\+\_\+\+Init.\+h File Reference}
\label{a00458}\index{AAX\_Init.h@{AAX\_Init.h}}
{\ttfamily \#include \char`\"{}AAX.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}acfbasetypes.\+h\char`\"{}}\newline


\doxysubsection{Description}
AAX library implementations of required plug-\/in initialization, registration, and tear-\/down methods. 

\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a00877_ga83d05333118598c179ca6d89487fa203}{AAXRegister\+Plugin}} (\mbox{\hyperlink{a01757}{IACFUnknown}} $\ast$p\+Unk\+Host, IACFPlugin\+Definition $\ast$$\ast$pp\+Plugin\+Definition)
\begin{DoxyCompactList}\small\item\em The main plug-\/in registration method.   \end{DoxyCompactList}\item 
\mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a00458_a03c71f96fcf624bf50b7acbe31a846f0}{AAXRegister\+Component}} (\mbox{\hyperlink{a01757}{IACFUnknown}} $\ast$p\+Unk\+Host, acf\+UInt32 index, IACFComponent\+Definition $\ast$$\ast$pp\+Component\+Definition)
\begin{DoxyCompactList}\small\item\em Registers a specific component in the DLL.   \end{DoxyCompactList}\item 
\mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a00458_a84cf37211a57dbaec9e7d077dd171798}{AAXGet\+Class\+Factory}} (\mbox{\hyperlink{a01757}{IACFUnknown}} $\ast$p\+Unk\+Host, const acf\+CLSID \&clsid, const \mbox{\hyperlink{a00305_a59df0b41744eee7a066787aaedf97f67}{acf\+IID}} \&iid, void $\ast$$\ast$pp\+Out)
\begin{DoxyCompactList}\small\item\em Gets the factory for a given class ID.   \end{DoxyCompactList}\item 
\mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a00458_a160de7bc2883da8ba24400933d814523}{AAXCan\+Unload\+Now}} (\mbox{\hyperlink{a01757}{IACFUnknown}} $\ast$p\+Unk\+Host)
\begin{DoxyCompactList}\small\item\em Determines whether or not the host may unload the DLL.   \end{DoxyCompactList}\item 
\mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a00458_a0d9b6aed98567dfb34a38b69432b564d}{AAXStartup}} (\mbox{\hyperlink{a01757}{IACFUnknown}} $\ast$p\+Unk\+Host)
\begin{DoxyCompactList}\small\item\em DLL initialization routine.   \end{DoxyCompactList}\item 
\mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a00458_a7423d60c255d0db99a9d8ee128279b9c}{AAXShutdown}} (\mbox{\hyperlink{a01757}{IACFUnknown}} $\ast$p\+Unk\+Host)
\begin{DoxyCompactList}\small\item\em DLL shutdown routine.   \end{DoxyCompactList}\item 
\mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a00458_a6a9bb35afab5850f43b0f8f9ce2df6ef}{AAXGet\+SDKVersion}} (acf\+UInt64 $\ast$o\+SDKVersion)
\begin{DoxyCompactList}\small\item\em Returns the DLL\textquotesingle{}s SDK version.   \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{a00458_a03c71f96fcf624bf50b7acbe31a846f0}\label{a00458_a03c71f96fcf624bf50b7acbe31a846f0}} 
\index{AAX\_Init.h@{AAX\_Init.h}!AAXRegisterComponent@{AAXRegisterComponent}}
\index{AAXRegisterComponent@{AAXRegisterComponent}!AAX\_Init.h@{AAX\_Init.h}}
\doxysubsubsection{\texorpdfstring{AAXRegisterComponent()}{AAXRegisterComponent()}}
{\footnotesize\ttfamily \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAXRegister\+Component (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a01757}{IACFUnknown}} $\ast$}]{p\+Unk\+Host,  }\item[{acf\+UInt32}]{index,  }\item[{IACFComponent\+Definition $\ast$$\ast$}]{pp\+Component\+Definition }\end{DoxyParamCaption})}



Registers a specific component in the DLL.   

The implementation of this method in the AAX library simply sets {\ttfamily $\ast$pp\+Component\+Definition} to NULL and returns \mbox{\hyperlink{a00530_a5f8c7439f3a706c4f8315a9609811937aeddbd1bb67e3a66e6af54a4b4a7a57b3}{AAX\+\_\+\+SUCCESS}}.

{\itshape Wrapped by \mbox{\hyperlink{a00536_a68950ea83fea9b46b8f3fef409355b71}{ACFRegister\+Component()}} } 

Referenced by \mbox{\hyperlink{a00536_a68950ea83fea9b46b8f3fef409355b71}{ACFRegister\+Component()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{a00458_a03c71f96fcf624bf50b7acbe31a846f0_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{a00458_a84cf37211a57dbaec9e7d077dd171798}\label{a00458_a84cf37211a57dbaec9e7d077dd171798}} 
\index{AAX\_Init.h@{AAX\_Init.h}!AAXGetClassFactory@{AAXGetClassFactory}}
\index{AAXGetClassFactory@{AAXGetClassFactory}!AAX\_Init.h@{AAX\_Init.h}}
\doxysubsubsection{\texorpdfstring{AAXGetClassFactory()}{AAXGetClassFactory()}}
{\footnotesize\ttfamily \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAXGet\+Class\+Factory (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a01757}{IACFUnknown}} $\ast$}]{p\+Unk\+Host,  }\item[{const acf\+CLSID \&}]{clsid,  }\item[{const \mbox{\hyperlink{a00305_a59df0b41744eee7a066787aaedf97f67}{acf\+IID}} \&}]{iid,  }\item[{void $\ast$$\ast$}]{pp\+Out }\end{DoxyParamCaption})}



Gets the factory for a given class ID.   

This method is required by ACF but is not supported by \mbox{\hyperlink{a00935}{AAX}}. Therefore the implementation of this method in the AAX library simply sets {\ttfamily $\ast$pp\+Out} to NULL and returns \mbox{\hyperlink{a00530_a5f8c7439f3a706c4f8315a9609811937a3b76994b32b97fcd56b19ef8032245df}{AAX\+\_\+\+ERROR\+\_\+\+UNIMPLEMENTED}}.

{\itshape Wrapped by \mbox{\hyperlink{a00536_a63cbe0222beee199dad20c26e79ebeaa}{ACFGet\+Class\+Factory()}} } 

Referenced by \mbox{\hyperlink{a00536_a63cbe0222beee199dad20c26e79ebeaa}{ACFGet\+Class\+Factory()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=338pt]{a00458_a84cf37211a57dbaec9e7d077dd171798_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{a00458_a160de7bc2883da8ba24400933d814523}\label{a00458_a160de7bc2883da8ba24400933d814523}} 
\index{AAX\_Init.h@{AAX\_Init.h}!AAXCanUnloadNow@{AAXCanUnloadNow}}
\index{AAXCanUnloadNow@{AAXCanUnloadNow}!AAX\_Init.h@{AAX\_Init.h}}
\doxysubsubsection{\texorpdfstring{AAXCanUnloadNow()}{AAXCanUnloadNow()}}
{\footnotesize\ttfamily \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAXCan\+Unload\+Now (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a01757}{IACFUnknown}} $\ast$}]{p\+Unk\+Host }\end{DoxyParamCaption})}



Determines whether or not the host may unload the DLL.   

The implementation of this method in the AAX library returns the result of {\ttfamily Get\+Active\+Object\+Count()} as an \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}}, with zero active objects interpreted as \mbox{\hyperlink{a00530_a5f8c7439f3a706c4f8315a9609811937aeddbd1bb67e3a66e6af54a4b4a7a57b3}{AAX\+\_\+\+SUCCESS}} (see CACFUnknown.\+h)

{\itshape Wrapped by \mbox{\hyperlink{a00536_ae5327dbd8fd750c78eca3892831f4ad8}{ACFCan\+Unload\+Now()}} } 

Referenced by \mbox{\hyperlink{a00536_ae5327dbd8fd750c78eca3892831f4ad8}{ACFCan\+Unload\+Now()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=328pt]{a00458_a160de7bc2883da8ba24400933d814523_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{a00458_a0d9b6aed98567dfb34a38b69432b564d}\label{a00458_a0d9b6aed98567dfb34a38b69432b564d}} 
\index{AAX\_Init.h@{AAX\_Init.h}!AAXStartup@{AAXStartup}}
\index{AAXStartup@{AAXStartup}!AAX\_Init.h@{AAX\_Init.h}}
\doxysubsubsection{\texorpdfstring{AAXStartup()}{AAXStartup()}}
{\footnotesize\ttfamily \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAXStartup (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a01757}{IACFUnknown}} $\ast$}]{p\+Unk\+Host }\end{DoxyParamCaption})}



DLL initialization routine.   

Called once at init time. The implementation of this method in the AAX library uses {\ttfamily p\+Unk\+Host} as an {\ttfamily IACFComponent\+Factory} to initialize global services (see acfbaseapi.\+h)

{\itshape Wrapped by \mbox{\hyperlink{a00536_ada314f5040499160998c3c444fbe4dfd}{ACFStartup()}} } 

Referenced by \mbox{\hyperlink{a00536_ada314f5040499160998c3c444fbe4dfd}{ACFStartup()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=252pt]{a00458_a0d9b6aed98567dfb34a38b69432b564d_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{a00458_a7423d60c255d0db99a9d8ee128279b9c}\label{a00458_a7423d60c255d0db99a9d8ee128279b9c}} 
\index{AAX\_Init.h@{AAX\_Init.h}!AAXShutdown@{AAXShutdown}}
\index{AAXShutdown@{AAXShutdown}!AAX\_Init.h@{AAX\_Init.h}}
\doxysubsubsection{\texorpdfstring{AAXShutdown()}{AAXShutdown()}}
{\footnotesize\ttfamily \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAXShutdown (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a01757}{IACFUnknown}} $\ast$}]{p\+Unk\+Host }\end{DoxyParamCaption})}



DLL shutdown routine.   

Called once before unloading the DLL. The implementation of this method in the AAX library tears down any globally initialized state and releases any globally retained resources.

{\itshape Wrapped by \mbox{\hyperlink{a00536_aba48dc247519ce7ecd2c064e928d9f18}{ACFShutdown()}} } 

Referenced by \mbox{\hyperlink{a00536_aba48dc247519ce7ecd2c064e928d9f18}{ACFShutdown()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=276pt]{a00458_a7423d60c255d0db99a9d8ee128279b9c_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{a00458_a6a9bb35afab5850f43b0f8f9ce2df6ef}\label{a00458_a6a9bb35afab5850f43b0f8f9ce2df6ef}} 
\index{AAX\_Init.h@{AAX\_Init.h}!AAXGetSDKVersion@{AAXGetSDKVersion}}
\index{AAXGetSDKVersion@{AAXGetSDKVersion}!AAX\_Init.h@{AAX\_Init.h}}
\doxysubsubsection{\texorpdfstring{AAXGetSDKVersion()}{AAXGetSDKVersion()}}
{\footnotesize\ttfamily \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAXGet\+SDKVersion (\begin{DoxyParamCaption}\item[{acf\+UInt64 $\ast$}]{o\+SDKVersion }\end{DoxyParamCaption})}



Returns the DLL\textquotesingle{}s SDK version.   

The implementation of this method in the AAX library provides a 64-\/bit value in which the upper 32 bits represent the SDK version and the lower 32 bits represent the revision number of the SDK. See \mbox{\hyperlink{a00548}{AAX\+\_\+\+Version.\+h}}

{\itshape Wrapped by \mbox{\hyperlink{a00536_a2a47c5f7e29baf716a4c4956389e83c9}{ACFGet\+SDKVersion()}} } 

Referenced by \mbox{\hyperlink{a00536_a2a47c5f7e29baf716a4c4956389e83c9}{ACFGet\+SDKVersion()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=330pt]{a00458_a6a9bb35afab5850f43b0f8f9ce2df6ef_icgraph}
\end{center}
\end{figure}
