/* @doc NNTPSDK SMTPSDK @module IMSG.IDL - IDL for the IMsg interface | This interface is used by the server events model in the NNTP and SMTP servers. */ import "oaidl.idl"; import "ocidl.idl"; // // @interface IMsg | The message interface // // @meth HRESULT | Value [propget] | // Get a property value // @meth HRESULT | Value [propput] | // Set a property value // // @meth HRESULT | GetVariantA | // High performance method to get a property value as a variant. This method // is not automation compatible. // @meth HRESULT | SetVariantA | // High performance method to set a property value as a variant. This method // is not automation compatible. // // @meth HRESULT | GetStringA | // High performance method to get a string property value. This method // is not automation compatible. // @meth HRESULT | SetStringA | // High performance method to set a string property value. This method // is not automation compatible. // // @meth HRESULT | GetDwordA | // High performance method to get a DWORD property value. This method // is not automation compatible. // @meth HRESULT | SetDwordA | // High performance method to set a DWORD property value. This method // is not automation compatible. // // @meth HRESULT | GetInterfaceA | // High performance method to get a interface property value. This method // is not automation compatible. // @meth HRESULT | SetInterfaceA | // High performance method to set a interface property value. This method // is not automation compatible. // // @xref // [ object, uuid(507E7D61-EE7C-11D0-869A-00C04FD65616), dual, helpstring("IMsg Interface"), pointer_default(unique) ] interface IMsg : IDispatch { // // @method HRESULT | IMsg | Value [propget] | Get the value of a property // @parm BSTR | bstrProperty | [in] The name of the property to retrieve // @parm VARIANT * | pvarValue | [out, retval] The value of the property // @rvalue S_OK | Success // @rvalue S_FALSE | Property doesn't exist // @rvalue E_OUTOFMEMORY | Failure, out of memory // @rvalue E_INVALIDARG | Failure, invalid argument or argument type // @rvalue E_ACCESSDENIED | Failure, operation not permitted // @xref // @xref // [propget, id(0), helpstring("property Value")] HRESULT Value(BSTR bstrValue, [out, retval] VARIANT *pVal); // // @method HRESULT | IMsg | Value [propput] | Put the value of a property // @parm BSTR | bstrProperty | [in] The name of the property to set // @parm VARIANT * | pvarValue | [out, retval] The value of the property // @rvalue S_OK | Success // @rvalue S_FALSE | Property doesn't exist // @rvalue E_OUTOFMEMORY | Failure, out of memory // @rvalue E_INVALIDARG | Failure, invalid argument or argument type // @rvalue E_ACCESSDENIED | Failure, operation not permitted // @xref // @xref // [propput, id(0), helpstring("property Value")] HRESULT Value(BSTR bstrValue, [in] VARIANT newVal); // // @method HRESULT | IMsg | GetVariantA | Get a variant property using the ANSI property name // @parm LPCSTR | pszName | [in] The name of the property to get // @parm VARIANT * | pvarResult | [out] The value of the property // @rvalue S_OK | Success // @rvalue S_FALSE | Property doesn't exist // @rvalue E_OUTOFMEMORY | Failure, out of memory // @rvalue E_INVALIDARG | Failure, invalid argument or argument type // @rvalue E_ACCESSDENIED | Failure, operation not permitted // @xref // @xref // @xref // @xref // HRESULT GetVariantA(LPCSTR pszName, VARIANT *pvarResult); // // @method HRESULT | IMsg | SetVariantA | Set a variant property using the ANSI property name // @parm LPCWSTR | pszName | [in] The name of the property to set // @parm VARIANT * | pvarResult | [in] The value of the property // @rvalue S_OK | Success // @rvalue S_FALSE | Property doesn't exist // @rvalue E_OUTOFMEMORY | Failure, out of memory // @rvalue E_INVALIDARG | Failure, invalid argument or argument type // @rvalue E_ACCESSDENIED | Failure, operation not permitted // @xref // @xref // @xref // @xref // HRESULT SetVariantA(LPCSTR pszName, VARIANT *pvarValue); // // @method HRESULT | IMsg | GetStringA | Get a string property as an ANSI string using the ANSI property name // @parm LPCSTR | pszName | [in] The name of the property to set // @parm VARIANT * | pvarResult | [out] The value of the property // @rvalue S_OK | Success // @rvalue S_FALSE | Property doesn't exist // @rvalue E_OUTOFMEMORY | Failure, out of memory // @rvalue E_INVALIDARG | Failure, invalid argument or argument type // @rvalue TYPE_E_TYPEMISMATCH | Failure, property is not a string // @rvalue E_ACCESSDENIED | Failure, operation not permitted // @xref // @xref // @xref // @xref // HRESULT GetStringA(LPCSTR pszName, DWORD *pchCount, LPSTR pszResult); // // @method HRESULT | IMsg | SetStringA | Set a string property as an ANSI string using the ANSI property name // @parm LPCWSTR | pszName | [in] The name of the property to set // @parm VARIANT * | pvarResult | [in] The value of the property // @rvalue S_OK | Success // @rvalue S_FALSE | Property doesn't exist // @rvalue E_OUTOFMEMORY | Failure, out of memory // @rvalue E_INVALIDARG | Failure, invalid argument or argument type // @rvalue TYPE_E_TYPEMISMATCH | Failure, property is not a string // @rvalue E_ACCESSDENIED | Failure, operation not permitted // @xref // @xref // @xref // @xref // HRESULT SetStringA(LPCSTR pszName, DWORD chCount, LPCSTR pszValue); // // @method HRESULT | IMsg | GetDwordA | Get a numeric property using the ANSI property name // @parm LPCSTR | pszName | [in] The name of the property to set // @parm VARIANT * | pvarResult | [out] The value of the property // @rvalue S_OK | Success // @rvalue S_FALSE | Property doesn't exist // @rvalue E_OUTOFMEMORY | Failure, out of memory // @rvalue E_INVALIDARG | Failure, invalid argument or argument type // @rvalue TYPE_E_TYPEMISMATCH | Failure, property is not a number // @rvalue E_ACCESSDENIED | Failure, operation not permitted // @xref // @xref // @xref // @xref // HRESULT GetDwordA(LPCSTR pszName, DWORD *pdwResult); // // @method HRESULT | IMsg | SetDwordA | Set a numeric property using the ANSI property name // @parm LPCWSTR | pszName | [in] The name of the property to set // @parm VARIANT * | pvarResult | [out] The value of the property // @rvalue S_OK | Success // @rvalue S_FALSE | Property doesn't exist // @rvalue E_OUTOFMEMORY | Failure, out of memory // @rvalue E_INVALIDARG | Failure, invalid argument or argument type // @rvalue TYPE_E_TYPEMISMATCH | Failure, property is not a number // @rvalue E_ACCESSDENIED | Failure, operation not permitted // @xref // @xref // @xref // @xref // HRESULT SetDwordA(LPCSTR pszName, DWORD dwValue); // // @method HRESULT | IMsg | GetInterfaceA | Get a COM interface property using the ANSI property name // @parm LPCSTR | pszName | [in] The name of the property to set // @parm VARIANT * | pvarResult | [out] The value of the property // @rvalue S_OK | Success // @rvalue S_FALSE | Property doesn't exist // @rvalue E_OUTOFMEMORY | Failure, out of memory // @rvalue E_INVALIDARG | Failure, invalid argument or argument type // @rvalue TYPE_E_TYPEMISMATCH | Failure, property is not an interface pointer // @rvalue E_ACCESSDENIED | Failure, operation not permitted // @xref // @xref // @xref // @xref // HRESULT GetInterfaceA(LPCSTR pszName, REFIID iidDesired, IUnknown **ppunkResult); // // @method HRESULT | IMsg | SetInterfaceA | Set a COM interface property using the ANSI property name // @parm LPCWSTR | pszName | [in] The name of the property to set // @parm VARIANT * | varResult | [in] The value of the property // @rvalue S_OK | Success // @rvalue S_FALSE | Property doesn't exist // @rvalue E_OUTOFMEMORY | Failure, out of memory // @rvalue E_INVALIDARG | Failure, invalid argument or argument type // @rvalue TYPE_E_TYPEMISMATCH | Failure, property is not an interface pointer // @rvalue E_ACCESSDENIED | Failure, operation not permitted // @xref // @xref // @xref // @xref // HRESULT SetInterfaceA(LPCSTR pszName, IUnknown *punkValue); }; // // @interface IMsgLog | The message logging interface // // @meth HRESULT | WriteToLog | Write to the log [ object, uuid(2229d170-4590-11d1-aa63-00aa006bc80b), helpstring("IMsg Logging Interface"), pointer_default(unique) ] interface IMsgLog : IUnknown { // @method HRESULT | IMsgLog | WriteToLog | Write to the log // @parm LPCWSTR | pszClientHostName | [in] Specifies the Client Host Name. May be NULL. // @parm LPCWSTR | pszClientUserName | [in] Specifies the Client User Name. May be NULL. // @parm LPCWSTR | pszServerAddress | [in] Specifies the Server Address May be NULL. // @parm LPCWSTR | pszOperation | [in] Specifies the operation. May be NULL. // @parm LPCWSTR | pszTarget | [in] Specifies the target. May be NULL. // @parm LPCWSTR | pszParameters | [in] Specifies the parameters. May be NULL. // @parm LPCWSTR | pszVersion | [in] Specifies the version. May be NULL. // @parm DWORD | dwBytesSent | [in] Specifies the number of bytes sent. // @parm DWORD | dwBytesReceived | [in] Specifies the number of bytes received. // @parm DWORD | dwProcessingTimeMS | [in] Specifies the time spent processing, in milliseconds. // @parm DWORD | dwWin32Status | [in] Specifies the Win32 status code. // @parm DWORD | dwProtocolStatus | [in] Specifies the protocol status code. // @parm DWORD | dwPort | [in] Specifies the port. // @parm LPCWSTR | pszHTTPHeader | [in] Specifies the HTTP header. May be NULL. // @rvalue S_OK | Success // @rvalue E_FAIL | Failure. // @rvalue E_NOTIMPL | Failure, not implemented. // @xref HRESULT WriteToLog([in] LPCSTR pszClientHostName, [in] LPCSTR pszClientUserName, [in] LPCSTR pszServerAddress, [in] LPCSTR pszOperation, [in] LPCSTR pszTarget, [in] LPCSTR pszParameters, [in] LPCSTR pszVersion, [in] DWORD dwBytesSent, [in] DWORD dwBytesReceived, [in] DWORD dwProcessingTimeMS, [in] DWORD dwWin32Status, [in] DWORD dwProtocolStatus, [in] DWORD dwPort, [in] LPCSTR pszHTTPHeader); }; [ uuid(507E7D54-EE7C-11D0-869A-00C04FD65616), version(1.0), helpstring("imsg 1.0 Type Library") ] library IMSGLib { importlib("stdole2.tlb"); [ uuid(507E7D62-EE7C-11D0-869A-00C04FD65616), helpstring("Msg Class") ] coclass Msg { [default] interface IMsg; }; };