\hypertarget{a01774}{}\doxysection{IACFDefinition Interface Reference}
\label{a01774}\index{IACFDefinition@{IACFDefinition}}


Inheritance diagram for IACFDefinition\+:
% FIG 0


Collaboration diagram for IACFDefinition\+:
% FIG 1


\doxysubsection{Description}
Publicly inherits from IACFUnknown.\+This abstract interface is used to indentify all of the plug-\/in components in the host. 

\begin{DoxyRemark}{Remarks}
This interface is the base class for both plug-\/in and component definitions. All defined attributes are read only.
\end{DoxyRemark}
\begin{DoxyNote}{Note}
This interface does not provide any attribute enumeration. You must know the uid of the associated with the attribute that you need to find. 

This interface is implemented by the host. The plug-\/in will use this interface to define optional attributes for both plug-\/in and component implementations classes. 
\end{DoxyNote}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual ACFRESULT ACFMETHODCALLTYPE \mbox{\hyperlink{a01774_abf9f28b14b95f0835857a9096d108989}{Define\+Attribute}} (const \mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} \&attribute\+ID, const \mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} \&type\+ID, const void $\ast$attr\+Data, acf\+UInt32 attr\+Data\+Size)=0
\begin{DoxyCompactList}\small\item\em Add a read only attribute to the definition. \end{DoxyCompactList}\item 
virtual ACFRESULT ACFMETHODCALLTYPE \mbox{\hyperlink{a01774_a067fc04f95d5b558634f8df3bc266815}{Get\+Attribute\+Info}} (const \mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} \&attribute\+ID, \mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} $\ast$type\+ID, acf\+UInt32 $\ast$attr\+Data\+Size)=0
\begin{DoxyCompactList}\small\item\em Returns information about the given attribute. \end{DoxyCompactList}\item 
virtual ACFRESULT ACFMETHODCALLTYPE \mbox{\hyperlink{a01774_a8dd0017a8c9bfd837d8938e09995c6bb}{Copy\+Attribute}} (const \mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} \&attribute\+ID, const \mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} \&type\+ID, void $\ast$attr\+Data, acf\+UInt32 attr\+Data\+Size)=0
\begin{DoxyCompactList}\small\item\em Copy the a given attribute. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions inherited from \mbox{\hyperlink{a01770}{IACFUnknown}}}
\begin{DoxyCompactItemize}
\item 
virtual BEGIN\+\_\+\+ACFINTERFACE ACFRESULT ACFMETHODCALLTYPE \mbox{\hyperlink{a01770_a8b7f0ae9c78d007ca76aa462ebe53135}{Query\+Interface}} (const \mbox{\hyperlink{a00308_a59df0b41744eee7a066787aaedf97f67}{acf\+IID}} \&iid, void $\ast$$\ast$pp\+Out)=0
\begin{DoxyCompactList}\small\item\em Returns pointers to supported interfaces. \end{DoxyCompactList}\item 
virtual acf\+UInt32 ACFMETHODCALLTYPE \mbox{\hyperlink{a01770_aa9c7a5b9dff341092b7b86bb9b3a58fb}{Add\+Ref}} (void)=0
\begin{DoxyCompactList}\small\item\em Increments reference count. \end{DoxyCompactList}\item 
virtual acf\+UInt32 ACFMETHODCALLTYPE \mbox{\hyperlink{a01770_afabd38cec0a9ed37f1d3e8644a70ac41}{Release}} (void)=0
\begin{DoxyCompactList}\small\item\em Decrements reference count. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{a01774_abf9f28b14b95f0835857a9096d108989}\label{a01774_abf9f28b14b95f0835857a9096d108989}} 
\index{IACFDefinition@{IACFDefinition}!DefineAttribute@{DefineAttribute}}
\index{DefineAttribute@{DefineAttribute}!IACFDefinition@{IACFDefinition}}
\doxysubsubsection{\texorpdfstring{DefineAttribute()}{DefineAttribute()}}
{\footnotesize\ttfamily virtual ACFRESULT ACFMETHODCALLTYPE IACFDefinition\+::\+Define\+Attribute (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} \&}]{attribute\+ID,  }\item[{const \mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} \&}]{type\+ID,  }\item[{const void $\ast$}]{attr\+Data,  }\item[{acf\+UInt32}]{attr\+Data\+Size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Add a read only attribute to the definition. 

{\bfseries{Define\+Attribute}} \begin{DoxyRemark}{Remarks}
Use the method to define additional global attributes for you component. This method will fail if the attribute has already been defined.
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em attribute\+ID} & Unique identifier for attribute \\
\hline
{\em type\+ID} & Indicates the type of the attribute data \\
\hline
{\em attr\+Data} & Pointer to buffer that contains the attribute data \\
\hline
{\em attr\+Data\+Size} & Size of the attribute buffer \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{a01774_a067fc04f95d5b558634f8df3bc266815}\label{a01774_a067fc04f95d5b558634f8df3bc266815}} 
\index{IACFDefinition@{IACFDefinition}!GetAttributeInfo@{GetAttributeInfo}}
\index{GetAttributeInfo@{GetAttributeInfo}!IACFDefinition@{IACFDefinition}}
\doxysubsubsection{\texorpdfstring{GetAttributeInfo()}{GetAttributeInfo()}}
{\footnotesize\ttfamily virtual ACFRESULT ACFMETHODCALLTYPE IACFDefinition\+::\+Get\+Attribute\+Info (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} \&}]{attribute\+ID,  }\item[{\mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} $\ast$}]{type\+ID,  }\item[{acf\+UInt32 $\ast$}]{attr\+Data\+Size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Returns information about the given attribute. 

\begin{DoxyRemark}{Remarks}
Use this method to retrieve the type and size of a given attribute. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em attribute\+ID} & Unique identifier for attribute \\
\hline
{\em type\+ID} & Indicates the type of the attribute data \\
\hline
{\em attr\+Data\+Size} & Size of the attribute data \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{a01774_a8dd0017a8c9bfd837d8938e09995c6bb}\label{a01774_a8dd0017a8c9bfd837d8938e09995c6bb}} 
\index{IACFDefinition@{IACFDefinition}!CopyAttribute@{CopyAttribute}}
\index{CopyAttribute@{CopyAttribute}!IACFDefinition@{IACFDefinition}}
\doxysubsubsection{\texorpdfstring{CopyAttribute()}{CopyAttribute()}}
{\footnotesize\ttfamily virtual ACFRESULT ACFMETHODCALLTYPE IACFDefinition\+::\+Copy\+Attribute (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} \&}]{attribute\+ID,  }\item[{const \mbox{\hyperlink{a00308_ab19414382287ff80930c48a196145214}{acf\+UID}} \&}]{type\+ID,  }\item[{void $\ast$}]{attr\+Data,  }\item[{acf\+UInt32}]{attr\+Data\+Size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Copy the a given attribute. 

{\bfseries{Copy\+Attribute}} \begin{DoxyRemark}{Remarks}
Use this method to access the contents of a given attribute. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em attribute\+ID} & Unique identifier for attribute \\
\hline
{\em type\+ID} & Indicates the type of the attribute data \\
\hline
{\em attr\+Data} & Pointer to buffer to copy the attribute data \\
\hline
{\em attr\+Data\+Size} & Size of the attribute buffer \\
\hline
\end{DoxyParams}


The documentation for this interface was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{a00308}{AAX\+\_\+\+ACFInterface.\+doxygen}}\end{DoxyCompactItemize}
