Definition of IIspecCycle Interface

interface IIspecCycle : Idispatch
{
 [id(1), helpstring("Initialize the GenericClass")]     
HRESULT Initialize([in] IUnknown* punkSegment, [in] BSTR bstrClassName );
 [id(2), helpstring("Creates a copy of this GenericClass")]     
HRESULT CreateCopy([out,retval] IIspecCycle **pOutput);
[id(3), helpstring("Set an attribute on the class")]     
HRESULT SetValue([in] BSTR bstrName, [in] BSTR bstrValue);
[id(4), helpstring("Return the value of an attribute in the class")]     
HRESULT GetValue([in] BSTR bstrName, [out,retval] BSTR* pbstrValue);
[id(5), helpstring("Processes the Ispec cycle")]     
HRESULT Process( LONG lSessId );
[id(6), helpstring("Converts a NOF buffer to this class")]     
HRESULT FromNof([in] SAFEARRAY(BYTE) saNofData, [in] LONG lcidNofData);
[id(7), helpstring("Converts this class to a NOF buffer")]     
HRESULT ToNof([in] LONG lcidNofData, [out,retval] SAFEARRAY(BYTE) *psaNofData);
[id(8), helpstring("Converts an XML document to this class")]    
 HRESULT FromXml([in] IUnknown *punkSegment, [in] BSTR bstrXml);
[id(9), helpstring("Converts an XML document to this class")]     
HRESULT FromXmlDom([in] MSXML2.IXMLDOMNode *pClassNode);
 [id(10), helpstring("Converts this class to an XML document")]     
HRESULT ToXml([out,retval] BSTR *pbstrXml);
[id(11), helpstring("Converts this class to an XML document fragment")]     
HRESULT ToXmlDom([in] BSTR bstrNamespace, [in,out] MSXML2.IXMLDOMDocumentFragment *pDocFragment, 
[in,defaultvalue(0)] bool bIncTypes);
[id(12), helpstring("Initialize the GenericClass with a parser type")]     
HRESULT Initialize2([in] IUnknown* punkSegment, [in] BSTR bstrClassName, [in] LONG lParserType, 
[in] BSTR bstrIspecFieldDescr );
[id(13), helpstring("Converts a GLI buffer to this class")]     
HRESULT FromGli([in] SAFEARRAY(BYTE) saGLIData, [in] LONG lcidGLIData);
[id(14), helpstring("Converts this class to a GLI buffer")]     
HRESULT ToGli([in] LONG lcidGLIData, [out,retval] SAFEARRAY(BYTE) *psaGLIData);
[id(15), helpstring("Sets a value in an array or copy.from region")]     
HRESULT SetArrayValue( [in] BSTR bstrName, [in] LONG lRowNumber, [in] BSTR bstrValue );
[id(16), helpstring("Returns a value in an array or copy.from region")]     
HRESULT GetArrayValue( [in] BSTR bstrName, [in] LONG lRowNumber, [out,retval] BSTR *pbstrValue );
[id(17), propget, helpstring("Returns the maximum number of copies in the copy.from region")]     
HRESULT MaxCopies( [out,retval] LONG *plNumCopies );
 [id(18), propget, helpstring("Returns the number of messages we've got")]     
HRESULT NumMessages( [out,retval] LONG *plNumMessages );
[id(19), propget, helpstring("Returns the given message. The first message is the status line")]     
HRESULT Message( [in] LONG lMessage, [out,retval] BSTR *pbstrValue );
[id(20), helpstring("Appends a message to the list of messages we have")]     
HRESULT AppendMessage( [in] BSTR bstrMessage );
[id(21), helpstring("Clears the message queue in the object")]     
HRESULT ClearMessages();
 [id(22), helpstring("Adds a dynamic list our internal list")]     
HRESULT AddDynamicList( [in] IStream *pList );
[id(23), propget, helpstring("Returns the number of lists we're holding a reference to")]     
HRESULT NumDynamicLists( [out,retval] LONG *plNumLists );
[id(24), helpstring("Returns (and removes the reference to) the given list")]     
HRESULT GetDynamicList( [in] LONG lListNumber, [out,retval] IStream **ppList );
[id(25), helpstring("Clears the list of dynamic lists that we have a reference to")]     
HRESULT ClearDynamicLists();
 [id(26), propget, helpstring("Returns an integer describing whatever errors there were, 
or 0 if everything succeeded.")]     
HRESULT Error( [out,retval] LONG *plError );
 [id(27), helpstring("Returns the data needed to switch to another application")     
HRESULT GetSwitchToData( [out] IUnknown **ppunkNewSegment, [out] BSTR *pbstrNewSystemName, [out,retval] 
BOOL *pbSwitched );
};

The following IIspecCycle methods are:

There are a number of other methods present on the IIspecCycle interface, however these are for internal use by the product and are therefore not described.

Note: A number of the methods in the IIspecCycle interface are declared in the IDL definition as properties with the propget attribute. This means that the method is invoked by appending "Get" to the method name declared in the IDL definition. An example is the following:[id(19), propget, helpstring("Returns the given message. The first message is the status line")] HRESULT Message( [in] LONG lMessage, [out,retval] BSTR *pbstrValue );To invoke this method you must use syntax like: msg = pOutput->GetMessage(1);"