WindowsXP-SP1/inetsrv/iis/svcs/infocomm/log/idl/script.idl
2020-09-30 16:53:49 +02:00

180 lines
7.3 KiB
Plaintext

// 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;
};
};