// script.idl : IDL source for script.dll // // This file will be processed by the MIDL tool to // produce the type library (script.tlb) and marshalling code. import "oaidl.idl"; import "ocidl.idl"; typedef enum IOMode{ ForReading = 1, ForWriting = 2, AllOpenFiles = 32 } IOMode; [ object, uuid(26B9ECFF-A3D8-11D1-8B9C-080009DCC2FA), oleautomation, dual, helpstring("ILogScripting - for manipulating IIS log records. Supports reading and writing of log records. \nAll return types are variants. A NULL variant means the value was not logged. An Empty variant means a '-' was logged."), pointer_default(unique) ] interface ILogScripting : IDispatch { [id(1), helpstring("Opens log file for reading or writing. See documentation regarding behavior when Mode is ForReading.")] HRESULT OpenLogFile( [in] BSTR szLogFileName, [in] IOMode Mode, [in] BSTR szServiceName, [in] long iServiceInstance, [in] BSTR szOutputLogFileFormat ); [id(2), helpstring("Closes open log files. Valid values are as defined by IOMode.")] HRESULT CloseLogFiles( [in] IOMode Mode ); [id(3), helpstring("Filter reading to only return records between the start and end DateTime.")] HRESULT ReadFilter( [in] DATE startDateTime, [in] DATE endDateTime ); [id(4), helpstring("Reads a log record satisfying the criterion specified in OpenLogFile.")] HRESULT ReadLogRecord( ); [id(5), helpstring("Are there any more log records to be read after the current position. Only set after an attempt to read past the end.")] HRESULT AtEndOfLog( [out, ref, retval] VARIANT_BOOL * pfEndOfRead ); [id(6), helpstring("Writes the log record available through the incoming interface to the output file.")] HRESULT WriteLogRecord( [in] ILogScripting * pILogScripting ); [id(7), propget, helpstring("Date & Time for the log record in GMT. Variant type is DATE")] HRESULT DateTime( [out, ref, retval] VARIANT * pvarDateTime ); [id(8), propget, helpstring("Name of service servicing the request. Variant type is String")] HRESULT ServiceName( [out, ref, retval] VARIANT * pvarServiceName ); [id(9), propget, helpstring("Name of server servicing the request. Variant type is String")] HRESULT ServerName( [out, ref, retval] VARIANT * pvarServerName ); [id(10), propget, helpstring("IP address of the client that made the request. Variant type is String")] HRESULT ClientIP( [out, ref, retval] VARIANT * pvarClientIP ); [id(11), propget, helpstring("Client user name for the request. Variant type is String")] HRESULT UserName( [out, ref, retval] VARIANT * pvarUserName ); [id(12), propget, helpstring("IP address of the server that serviced the request. Variant type is String")] HRESULT ServerIP( [out, ref, retval] VARIANT * pvarServerIP ); [id(13), propget, helpstring("Method call (get, put etc) specified for the request. Variant type is String")] HRESULT Method( [out, ref, retval] VARIANT * pvarMethod ); [id(14), propget, helpstring("Target url for the request. Variant type is String")] HRESULT URIStem( [out, ref, retval] VARIANT * pvarURIStem ); [id(15), propget, helpstring("Parameters for this request. Variant type is String")] HRESULT URIQuery( [out, ref, retval] VARIANT * pvarURIQuery ); [id(16), propget, helpstring("Server time taken to process this request. Variant type is Long")] HRESULT TimeTaken( [out, ref, retval] VARIANT * pvarTimeTaken ); [id(17), propget, helpstring("Bytes sent from the server to the client. Variant type is Long")] HRESULT BytesSent( [out, ref, retval] VARIANT * pvarBytesSent ); [id(18), propget, helpstring("Bytes received by the server from the client. Variant type is Long")] HRESULT BytesReceived( [out, ref, retval] VARIANT * pvarBytesReceived ); [id(19), propget, helpstring("Win32 status of processing this request. Variant type is Long")] HRESULT Win32Status( [out, ref, retval] VARIANT * pvarWin32Status ); [id(20), propget, helpstring("Protocol status of processing this request. Variant type is Long")] HRESULT ProtocolStatus( [out, ref, retval] VARIANT * pvarProtocolStatus ); [id(21), propget, helpstring("Server port number where the request was received. Variant type is Long")] HRESULT ServerPort( [out, ref, retval] VARIANT * pvarServerPort ); [id(22), propget, helpstring("Protocol version used for this request. Variant type is String")] HRESULT ProtocolVersion( [out, ref, retval] VARIANT * pvarProtocolVersion ); [id(23), propget, helpstring("User Agent for this request. Variant type is String")] HRESULT UserAgent( [out, ref, retval] VARIANT * pvarUserAgent ); [id(24), propget, helpstring("Cookie sent with this request. Variant type is String")] HRESULT Cookie( [out, ref, retval] VARIANT * pvarCookie ); [id(25), propget, helpstring("Referring URL for this request. Variant type is String")] HRESULT Referer( [out, ref, retval] VARIANT * pvarReferer ); [id(26), propget, helpstring("All custom fields with values in a 2-D safearray. The first dimension (x,0) has the W3C headers and the second (x,1) has the value for custom field number x. Variant type is Variant")] HRESULT CustomFields( [out, ref, retval] VARIANT * pvarCustomFieldsArray ); }; [ uuid(B758F2F9-A3D6-11D1-8B9C-080009DCC2FA), version(1.0), helpstring("MSWC IIS Log Object Library") ] library IISLog { importlib("stdole2.tlb"); [ uuid(26B9ED02-A3D8-11D1-8B9C-080009DCC2FA), helpstring("MSWC.IISLog") ] coclass LogScripting { [default] interface ILogScripting; }; };