idispatch

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// IDispatch interface identifier 00020400-0000-0000-c000-000000000046
	DispatchIID = &dcom.IID{Data1: 0x00020400, Data2: 0x0000, Data3: 0x0000, Data4: []byte{0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}
	// Syntax UUID
	DispatchSyntaxUUID = &uuid.UUID{TimeLow: 0x20400, TimeMid: 0x0, TimeHiAndVersion: 0x0, ClockSeqHiAndReserved: 0xc0, ClockSeqLow: 0x0, Node: [6]uint8{0x0, 0x0, 0x0, 0x0, 0x0, 0x46}}
	// Syntax ID
	DispatchSyntaxV0_0 = &dcerpc.SyntaxID{IfUUID: DispatchSyntaxUUID, IfVersionMajor: 0, IfVersionMinor: 0}
)
View Source
var DispatchIDNewenum = -4

DispatchIDNewenum represents the DISPID_NEWENUM RPC constant

View Source
var DispatchIDPropertyPut = -3

DispatchIDPropertyPut represents the DISPID_PROPERTYPUT RPC constant

View Source
var DispatchIDUnknown = -1

DispatchIDUnknown represents the DISPID_UNKNOWN RPC constant

View Source
var DispatchIDValue = 0

DispatchIDValue represents the DISPID_VALUE RPC constant

View Source
var DispatchMethod = 1

DispatchMethod represents the DISPATCH_METHOD RPC constant

View Source
var DispatchPropertyGet = 2

DispatchPropertyGet represents the DISPATCH_PROPERTYGET RPC constant

View Source
var DispatchPropertyPut = 4

DispatchPropertyPut represents the DISPATCH_PROPERTYPUT RPC constant

View Source
var DispatchPropertyPutReference = 8

DispatchPropertyPutReference represents the DISPATCH_PROPERTYPUTREF RPC constant

View Source
var DispatchZeroArgError = 524288

DispatchZeroArgError represents the DISPATCH_zeroArgErr RPC constant

View Source
var DispatchZeroExceptionInfo = 262144

DispatchZeroExceptionInfo represents the DISPATCH_zeroExcepInfo RPC constant

View Source
var DispatchZeroVarResult = 131072

DispatchZeroVarResult represents the DISPATCH_zeroVarResult RPC constant

View Source
var (
	// import guard
	GoPackage = "dcom/oaut"
)

Functions

func DispatchServerHandle

func DispatchServerHandle(ctx context.Context, o DispatchServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)

func NewDispatchServerHandle

func NewDispatchServerHandle(o DispatchServer) dcerpc.ServerHandle

func RegisterDispatchServer

func RegisterDispatchServer(conn dcerpc.Conn, o DispatchServer, opts ...dcerpc.Option)

Types

type DispatchClient

type DispatchClient interface {

	// IUnknown retrieval method.
	Unknown() iunknown.UnknownClient

	// The GetTypeInfoCount method provides the number of automation type descriptions in
	// the type information table.
	//
	// The GetTypeInfoCount method specifies whether the automation server provides Type
	// description information.
	//
	// Return Values: The method MUST return information in an HRESULT data structure, defined
	// in [MS-ERREF] section 2.1. The severity bit in the structure identifies the following
	// conditions:
	//
	// * If the severity bit is set to 0, the method completed successfully.
	//
	// * If the severity bit is set to 1, the method failed and encountered a fatal error.
	GetTypeInfoCount(context.Context, *GetTypeInfoCountRequest, ...dcerpc.CallOption) (*GetTypeInfoCountResponse, error)

	// The GetTypeInfo method provides access to the Type description information exposed
	// by the automation server.
	//
	// The GetTypeInfo method retrieves the automation type description that has the specified
	// ordinal position within the type information table.
	//
	// Return Values: The method MUST return information in an HRESULT data structure, defined
	// in [MS-ERREF] section 2.1. The severity bit in the structure identifies the following
	// conditions:
	//
	// * If the severity bit is set to 0, the method completed successfully.
	//
	// * If the severity bit is set to 1 and the entire HRESULT ( ../ms-dtyp/a9046ed2-bfb2-4d56-a719-2824afce59ac
	// ) DWORD does not match the value in the following table, a fatal failure occurred.
	//
	// * If the severity bit is set to 1 and the entire HRESULT DWORD matches the value
	// in the following table, a failure occurred.
	//
	// Return value/code
	//
	// # Description
	//
	// 0x8002000B
	//
	// DISP_E_BADINDEX
	//
	// SHOULD be returned when the value of the passed in iTInfo argument was not 0. See
	// [MS-ERREF].
	GetTypeInfo(context.Context, *GetTypeInfoRequest, ...dcerpc.CallOption) (*GetTypeInfoResponse, error)

	// The GetIDsOfNames method maps a single member (method or property) name, and an optional
	// set of argument names, to a corresponding set of integer DISPIDs, which can be used
	// on subsequent calls to IDispatch::Invoke.
	//
	// Return Values: The method MUST return information in an HRESULT data structure, as
	// defined in [MS-ERREF] section 2.1. The severity bit in the structure identifies the
	// following conditions:
	//
	// * If the severity bit is set to 0, the method completed successfully.
	//
	// * If the severity bit is set to 1 and the entire HRESULT DWORD does not match a value
	// in the following table, a fatal failure occurred.
	//
	// * If the severity bit is set to 1 and the entire HRESULT DWORD matches a value in
	// the following table, a failure occurred.
	//
	// Return value/code
	//
	// # Description
	//
	// 0x80020006
	//
	// DISP_E_UNKNOWNNAME
	//
	// One or more names were not known. The returned array of DISPIDs MUST contain at least
	// one DISPID_UNKNOWN, and there MUST be one DISPID_UNKNOWN for each entry that corresponds
	// to an unknown name. See [MS-ERREF].
	//
	// 0x80020001
	//
	// DISP_E_UNKNOWNINTERFACE
	//
	// The interface identifier passed in riid is not IID_NULL. See [MS-ERREF].
	//
	// Exceptions Thrown: No exceptions are thrown from this method except those that are
	// thrown by the underlying RPC Protocol specified in [MS-RPCE].
	//
	// When GetIDsOfNames is called with more than one name, the first name (rgszNames[0])
	// corresponds to the member name, and subsequent names correspond to the names of member
	// parameters.
	//
	// The same name can map to different DISPIDs, depending on context. For example, a
	// name can have a DISPID when it is used as: a member name with a particular interface,
	// a different ID as a member of a different interface, or a different mapping for each
	// time it appears as a parameter.
	//
	// The implementation of GetIDsOfNames MUST be case-insensitive.
	//
	// An implementation of the OLE Automation Protocol MAY<55> choose to implement a mapping
	// for the parameter names that map to the index of the parameter in the member parameter
	// list.
	GetIDsOfNames(context.Context, *GetIDsOfNamesRequest, ...dcerpc.CallOption) (*GetIDsOfNamesResponse, error)

	// The Invoke method provides access to properties and methods exposed by the automation
	// server.
	//
	// Return Values: The method MUST return information in an HRESULT data structure, defined
	// in [MS-ERREF] section 2.1. The severity bit in the structure identifies the following
	// conditions:
	//
	// * If the severity bit is set to 0, the method completed successfully.
	//
	// * If the severity bit is set to 1 and the entire HRESULT DWORD does not match a value
	// in the following table, a fatal failure occurred.
	//
	// * If the severity bit is set to 1 and the entire HRESULT DWORD matches a value in
	// the following table, a failure occurred.
	//
	// Return value/code
	//
	// # Description
	//
	// 0x80020009
	//
	// DISP_E_EXCEPTION
	//
	// The application needs to raise an exception. In this case, the structure passed in
	// pExcepInfo MUST be filled in with a nonzero error code. See [MS-ERREF].
	//
	// 0x80020004
	//
	// DISP_E_PARAMNOTFOUND
	//
	// One of the parameter DISPIDs does not correspond to a parameter on the method. In
	// this case, pArgErr MUST be set to the first argument that contains the error. See
	// [MS-ERREF].
	//
	// 0x80020005
	//
	// DISP_E_TYPEMISMATCH
	//
	// One or more of the arguments could not be coerced into the type of the corresponding
	// formal parameter. The index within rgvarg of the first parameter with the incorrect
	// type MUST be returned in the pArgErr parameter. For more information, see section
	// 3.1.4.4.4 ( 5c01ab3c-f719-44cc-bb45-d36850cf4c5b ) and [MS-ERREF].
	//
	// 0x8002000E
	//
	// DISP_E_BADPARAMCOUNT
	//
	// The number of elements provided to DISPPARAMS is different from the number of arguments
	// accepted by the method or property. See [MS-ERREF].
	//
	// 0x80020008
	//
	// DISP_E_BADVARTYPE
	//
	// One of the arguments in rgvarg is not a valid variant type. See [MS-ERREF].
	//
	// 0x80020003
	//
	// DISP_E_MEMBERNOTFOUND
	//
	// The requested member does not exist, or the call to Invoke tried to set the value
	// of a read-only property. See [MS-ERREF].
	//
	// 0x80020007
	//
	// DISP_E_NONAMEDARGS
	//
	// At least one named argument was provided for methods with a vararg parameter (see
	// section 3.1.4.4.3 ( be6e35f6-9327-4164-9bde-ffcd0fa0e07d ) ), for which named arguments
	// are illegal. See [MS-ERREF].
	//
	// 0x8002000A
	//
	// DISP_E_OVERFLOW
	//
	// One of the arguments in rgvarg could not be coerced to the type of its corresponding
	// formal parameter. See [MS-ERREF].
	//
	// 0x80020001
	//
	// DISP_E_UNKNOWNINTERFACE
	//
	// The interface identifier passed in riid is not IID_NULL. See [MS-ERREF].
	//
	// 0x8002000F
	//
	// DISP_E_PARAMNOTOPTIONAL
	//
	// A required parameter was omitted. See [MS-ERREF].
	//
	// Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying
	// RPC Protocol, as specified in [MS-RPCE].
	Invoke(context.Context, *InvokeRequest, ...dcerpc.CallOption) (*InvokeResponse, error)

	// AlterContext alters the client context.
	AlterContext(context.Context, ...dcerpc.Option) error

	// IPID sets the object interface identifier.
	IPID(context.Context, *dcom.IPID) DispatchClient
}

IDispatch interface.

func NewDispatchClient

func NewDispatchClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (DispatchClient, error)

type DispatchServer

type DispatchServer interface {

	// IUnknown base class.
	iunknown.UnknownServer

	// The GetTypeInfoCount method provides the number of automation type descriptions in
	// the type information table.
	//
	// The GetTypeInfoCount method specifies whether the automation server provides Type
	// description information.
	//
	// Return Values: The method MUST return information in an HRESULT data structure, defined
	// in [MS-ERREF] section 2.1. The severity bit in the structure identifies the following
	// conditions:
	//
	// * If the severity bit is set to 0, the method completed successfully.
	//
	// * If the severity bit is set to 1, the method failed and encountered a fatal error.
	GetTypeInfoCount(context.Context, *GetTypeInfoCountRequest) (*GetTypeInfoCountResponse, error)

	// The GetTypeInfo method provides access to the Type description information exposed
	// by the automation server.
	//
	// The GetTypeInfo method retrieves the automation type description that has the specified
	// ordinal position within the type information table.
	//
	// Return Values: The method MUST return information in an HRESULT data structure, defined
	// in [MS-ERREF] section 2.1. The severity bit in the structure identifies the following
	// conditions:
	//
	// * If the severity bit is set to 0, the method completed successfully.
	//
	// * If the severity bit is set to 1 and the entire HRESULT ( ../ms-dtyp/a9046ed2-bfb2-4d56-a719-2824afce59ac
	// ) DWORD does not match the value in the following table, a fatal failure occurred.
	//
	// * If the severity bit is set to 1 and the entire HRESULT DWORD matches the value
	// in the following table, a failure occurred.
	//
	// Return value/code
	//
	// # Description
	//
	// 0x8002000B
	//
	// DISP_E_BADINDEX
	//
	// SHOULD be returned when the value of the passed in iTInfo argument was not 0. See
	// [MS-ERREF].
	GetTypeInfo(context.Context, *GetTypeInfoRequest) (*GetTypeInfoResponse, error)

	// The GetIDsOfNames method maps a single member (method or property) name, and an optional
	// set of argument names, to a corresponding set of integer DISPIDs, which can be used
	// on subsequent calls to IDispatch::Invoke.
	//
	// Return Values: The method MUST return information in an HRESULT data structure, as
	// defined in [MS-ERREF] section 2.1. The severity bit in the structure identifies the
	// following conditions:
	//
	// * If the severity bit is set to 0, the method completed successfully.
	//
	// * If the severity bit is set to 1 and the entire HRESULT DWORD does not match a value
	// in the following table, a fatal failure occurred.
	//
	// * If the severity bit is set to 1 and the entire HRESULT DWORD matches a value in
	// the following table, a failure occurred.
	//
	// Return value/code
	//
	// # Description
	//
	// 0x80020006
	//
	// DISP_E_UNKNOWNNAME
	//
	// One or more names were not known. The returned array of DISPIDs MUST contain at least
	// one DISPID_UNKNOWN, and there MUST be one DISPID_UNKNOWN for each entry that corresponds
	// to an unknown name. See [MS-ERREF].
	//
	// 0x80020001
	//
	// DISP_E_UNKNOWNINTERFACE
	//
	// The interface identifier passed in riid is not IID_NULL. See [MS-ERREF].
	//
	// Exceptions Thrown: No exceptions are thrown from this method except those that are
	// thrown by the underlying RPC Protocol specified in [MS-RPCE].
	//
	// When GetIDsOfNames is called with more than one name, the first name (rgszNames[0])
	// corresponds to the member name, and subsequent names correspond to the names of member
	// parameters.
	//
	// The same name can map to different DISPIDs, depending on context. For example, a
	// name can have a DISPID when it is used as: a member name with a particular interface,
	// a different ID as a member of a different interface, or a different mapping for each
	// time it appears as a parameter.
	//
	// The implementation of GetIDsOfNames MUST be case-insensitive.
	//
	// An implementation of the OLE Automation Protocol MAY<55> choose to implement a mapping
	// for the parameter names that map to the index of the parameter in the member parameter
	// list.
	GetIDsOfNames(context.Context, *GetIDsOfNamesRequest) (*GetIDsOfNamesResponse, error)

	// The Invoke method provides access to properties and methods exposed by the automation
	// server.
	//
	// Return Values: The method MUST return information in an HRESULT data structure, defined
	// in [MS-ERREF] section 2.1. The severity bit in the structure identifies the following
	// conditions:
	//
	// * If the severity bit is set to 0, the method completed successfully.
	//
	// * If the severity bit is set to 1 and the entire HRESULT DWORD does not match a value
	// in the following table, a fatal failure occurred.
	//
	// * If the severity bit is set to 1 and the entire HRESULT DWORD matches a value in
	// the following table, a failure occurred.
	//
	// Return value/code
	//
	// # Description
	//
	// 0x80020009
	//
	// DISP_E_EXCEPTION
	//
	// The application needs to raise an exception. In this case, the structure passed in
	// pExcepInfo MUST be filled in with a nonzero error code. See [MS-ERREF].
	//
	// 0x80020004
	//
	// DISP_E_PARAMNOTFOUND
	//
	// One of the parameter DISPIDs does not correspond to a parameter on the method. In
	// this case, pArgErr MUST be set to the first argument that contains the error. See
	// [MS-ERREF].
	//
	// 0x80020005
	//
	// DISP_E_TYPEMISMATCH
	//
	// One or more of the arguments could not be coerced into the type of the corresponding
	// formal parameter. The index within rgvarg of the first parameter with the incorrect
	// type MUST be returned in the pArgErr parameter. For more information, see section
	// 3.1.4.4.4 ( 5c01ab3c-f719-44cc-bb45-d36850cf4c5b ) and [MS-ERREF].
	//
	// 0x8002000E
	//
	// DISP_E_BADPARAMCOUNT
	//
	// The number of elements provided to DISPPARAMS is different from the number of arguments
	// accepted by the method or property. See [MS-ERREF].
	//
	// 0x80020008
	//
	// DISP_E_BADVARTYPE
	//
	// One of the arguments in rgvarg is not a valid variant type. See [MS-ERREF].
	//
	// 0x80020003
	//
	// DISP_E_MEMBERNOTFOUND
	//
	// The requested member does not exist, or the call to Invoke tried to set the value
	// of a read-only property. See [MS-ERREF].
	//
	// 0x80020007
	//
	// DISP_E_NONAMEDARGS
	//
	// At least one named argument was provided for methods with a vararg parameter (see
	// section 3.1.4.4.3 ( be6e35f6-9327-4164-9bde-ffcd0fa0e07d ) ), for which named arguments
	// are illegal. See [MS-ERREF].
	//
	// 0x8002000A
	//
	// DISP_E_OVERFLOW
	//
	// One of the arguments in rgvarg could not be coerced to the type of its corresponding
	// formal parameter. See [MS-ERREF].
	//
	// 0x80020001
	//
	// DISP_E_UNKNOWNINTERFACE
	//
	// The interface identifier passed in riid is not IID_NULL. See [MS-ERREF].
	//
	// 0x8002000F
	//
	// DISP_E_PARAMNOTOPTIONAL
	//
	// A required parameter was omitted. See [MS-ERREF].
	//
	// Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying
	// RPC Protocol, as specified in [MS-RPCE].
	Invoke(context.Context, *InvokeRequest) (*InvokeResponse, error)
}

IDispatch server interface.

type GetIDsOfNamesRequest

type GetIDsOfNamesRequest struct {
	// This: ORPCTHIS structure that is used to send ORPC extension data to the server.
	This *dcom.ORPCThis `idl:"name:This" json:"this"`
	// riid: MUST equal IID_NULL (see section 1.9).
	IID *dcom.IID `idl:"name:riid" json:"iid"`
	// rgszNames: MUST be the array of strings to be mapped. The first string in the array
	// MUST specify the name of a method or property that is supported by the server. Any
	// additional strings MUST contain the names of all arguments for the method or property
	// that is specified by the value in the first string. The mapping MUST be case-insensitive.
	Names []string `idl:"name:rgszNames;size_is:(cNames)" json:"names"`
	// cNames: MUST equal the count of names to be mapped, and MUST<54> be between 0 and
	// 16384.
	NamesCount uint32 `idl:"name:cNames" json:"names_count"`
	// lcid: MUST equal the locale ID in which to interpret the names.
	LocaleID uint32 `idl:"name:lcid" json:"locale_id"`
}

GetIDsOfNamesRequest structure represents the GetIDsOfNames operation request

func (*GetIDsOfNamesRequest) MarshalNDR

func (o *GetIDsOfNamesRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetIDsOfNamesRequest) UnmarshalNDR

func (o *GetIDsOfNamesRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetIDsOfNamesResponse

type GetIDsOfNamesResponse struct {
	// That: ORPCTHAT structure that is used to return ORPC extension data to the client.
	That *dcom.ORPCThat `idl:"name:That" json:"that"`
	// rgDispId: MUST be an array of DISPIDs that are filled in by the server. Each DISPID
	// corresponds, by position, to one of the names passed in rgszNames.
	DispatchID []int32 `idl:"name:rgDispId;size_is:(cNames)" json:"dispatch_id"`
	// Return: The GetIDsOfNames return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetIDsOfNamesResponse structure represents the GetIDsOfNames operation response

func (*GetIDsOfNamesResponse) MarshalNDR

func (o *GetIDsOfNamesResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetIDsOfNamesResponse) UnmarshalNDR

func (o *GetIDsOfNamesResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetTypeInfoCountRequest

type GetTypeInfoCountRequest struct {
	// This: ORPCTHIS structure that is used to send ORPC extension data to the server.
	This *dcom.ORPCThis `idl:"name:This" json:"this"`
}

GetTypeInfoCountRequest structure represents the GetTypeInfoCount operation request

func (*GetTypeInfoCountRequest) MarshalNDR

func (o *GetTypeInfoCountRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetTypeInfoCountRequest) UnmarshalNDR

func (o *GetTypeInfoCountRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetTypeInfoCountResponse

type GetTypeInfoCountResponse struct {
	// That: ORPCTHAT structure that is used to return ORPC extension data to the client.
	That *dcom.ORPCThat `idl:"name:That" json:"that"`
	// pctinfo: MUST be set to 0 if the automation server does not provide Type description
	// information. Otherwise, it MUST be set to 1.
	TypeInfoCount uint32 `idl:"name:pctinfo" json:"type_info_count"`
	// Return: The GetTypeInfoCount return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetTypeInfoCountResponse structure represents the GetTypeInfoCount operation response

func (*GetTypeInfoCountResponse) MarshalNDR

func (o *GetTypeInfoCountResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetTypeInfoCountResponse) UnmarshalNDR

func (o *GetTypeInfoCountResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetTypeInfoRequest

type GetTypeInfoRequest struct {
	// This: ORPCTHIS structure that is used to send ORPC extension data to the server.
	This *dcom.ORPCThis `idl:"name:This" json:"this"`
	// iTInfo: MUST be 0.
	TypeInfoIndex uint32 `idl:"name:iTInfo" json:"type_info_index"`
	// lcid: MUST equal the locale ID for the Type description information to be retrieved.
	LocaleID uint32 `idl:"name:lcid" json:"locale_id"`
}

GetTypeInfoRequest structure represents the GetTypeInfo operation request

func (*GetTypeInfoRequest) MarshalNDR

func (o *GetTypeInfoRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetTypeInfoRequest) UnmarshalNDR

func (o *GetTypeInfoRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetTypeInfoResponse

type GetTypeInfoResponse struct {
	// That: ORPCTHAT structure that is used to return ORPC extension data to the client.
	That *dcom.ORPCThat `idl:"name:That" json:"that"`
	// ppTInfo: MUST be set to reference an instance of an ITypeInfo server that corresponds
	// to the default nonsource interface of the coclass implementing IDispatch (see section
	// 2.2.49.8). MUST refer to the partner dispinterface if the default nonsource interface
	// is a dual interface. MUST be set to NULL if the coclass does not specify a default
	// nonsource interface.
	//
	// ppTInfo: MUST be set to a reference to the ITypeInfo server instance (see section
	// 3.7) with the specified position in the type information table, or to NULL if the
	// value of index is greater than or equal to the number of automation type descriptions
	// in the type information table.
	TypeInfo *oaut.TypeInfo `idl:"name:ppTInfo" json:"type_info"`
	// Return: The GetTypeInfo return value.
	Return int32 `idl:"name:Return" json:"return"`
}

GetTypeInfoResponse structure represents the GetTypeInfo operation response

func (*GetTypeInfoResponse) MarshalNDR

func (o *GetTypeInfoResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetTypeInfoResponse) UnmarshalNDR

func (o *GetTypeInfoResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type InvokeRequest

type InvokeRequest struct {
	// This: ORPCTHIS structure that is used to send ORPC extension data to the server.
	This *dcom.ORPCThis `idl:"name:This" json:"this"`
	// dispIdMember: MUST equal the DISPID of the method or property to call.
	DispatchIDMember int32 `idl:"name:dispIdMember" json:"dispatch_id_member"`
	// riid: MUST equal IID_NULL (see section 1.9).
	IID *dcom.IID `idl:"name:riid" json:"iid"`
	// lcid: MUST equal a locale ID supported by the automation server. This value SHOULD
	// be used by the automation server if any of the arguments are strings whose meaning
	// is dependent on a specific locale ID. If no such strings are present in the arguments
	// the server SHOULD ignore this value.
	LocaleID uint32 `idl:"name:lcid" json:"locale_id"`
	// dwFlags:  MUST be a combination of the bit flags specified in the following table.
	//
	// Note  The value MUST specify one and only one of the following bit flags: DISPATCH_METHOD,
	// DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, or DISPATCH_PROPERTYPUTREF.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|                                    |                                                                                  |
	//	|               VALUE                |                                     MEANING                                      |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DISPATCH_METHOD 0x00000001         | The member is invoked as a method.                                               |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DISPATCH_PROPERTYGET 0x00000002    | The member is retrieved as a property or data member.                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DISPATCH_PROPERTYPUT 0x00000004    | The member is changed as a property or data member.                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DISPATCH_PROPERTYPUTREF 0x00000008 | The member is changed by a reference assignment, rather than by a value          |
	//	|                                    | assignment. This flag is valid only when the property accepts a reference to an  |
	//	|                                    | object.                                                                          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DISPATCH_zeroVarResult 0x00020000  | MUST specify that the client is not interested in the actual pVarResult [out]    |
	//	|                                    | argument. On return the pVarResult argument MUST point to a VT_EMPTY variant,    |
	//	|                                    | with all reserved fields set to 0.                                               |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DISPATCH_zeroExcepInfo 0x00040000  | MUST specify that the client is not interested in the actual pExcepInfo [out]    |
	//	|                                    | argument. On return pExcepInfo MUST point to an EXCEPINFO structure, with all    |
	//	|                                    | scalar fields set to 0 and all BSTR fields set to NULL.                          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| DISPATCH_zeroArgErr 0x00080000     | MUST specify that the client is not interested in the actual pArgErr [out]       |
	//	|                                    | argument. On return, pArgErr MUST be set to 0.                                   |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:dwFlags" json:"flags"`
	// pDispParams:  MUST point to a DISPPARAMS structure that defines the arguments passed
	// to the method. Arguments MUST be stored in pDispParams->rgvarg in reverse order,
	// so that the first argument is the one with the highest index in the array. Byref
	// arguments MUST be marked in this array as VT_EMPTY entries, and stored in rgVarRef
	// instead. For more information, see section 2.2.33.
	DispatchParams *oaut.DispatchParams `idl:"name:pDispParams" json:"dispatch_params"`
	// cVarRef: MUST equal the number of byref arguments passed in pDispParams.
	VarReferenceCount uint32 `idl:"name:cVarRef" json:"var_reference_count"`
	// rgVarRefIdx: MUST contain an array of cVarRef unsigned integers that holds the indices
	// of the byref arguments marked as VT_EMPTY entries in pDispParams->rgvarg.
	VarReferenceIndex []uint32 `idl:"name:rgVarRefIdx;size_is:(cVarRef)" json:"var_reference_index"`
	// rgVarRef: MUST contain the byref arguments as set by the client at the time of the
	// call, and by the server on successful return from the call. Arguments in this array
	// MUST also be stored in reverse order, so that the first byref argument has the highest
	// index in the array.
	VarReference []*oaut.Variant `idl:"name:rgVarRef;size_is:(cVarRef)" json:"var_reference"`
}

InvokeRequest structure represents the Invoke operation request

func (*InvokeRequest) MarshalNDR

func (o *InvokeRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*InvokeRequest) UnmarshalNDR

func (o *InvokeRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type InvokeResponse

type InvokeResponse struct {
	// That: ORPCTHAT structure that is used to return ORPC extension data to the client.
	That *dcom.ORPCThat `idl:"name:That" json:"that"`
	// pVarResult: MUST point to a VARIANT that will be filled with the result of the method
	// or property call.
	VarResult *oaut.Variant `idl:"name:pVarResult" json:"var_result"`
	// pExcepInfo: If this value is not null and the return value is DISP_E_EXCEPTION, this
	// structure MUST be filled by the automation server. Otherwise, it MUST specify a 0
	// value for the scode and wCode fields, and it MUST be ignored on receipt.
	ExceptionInfo *oaut.ExceptionInfo `idl:"name:pExcepInfo" json:"exception_info"`
	// pArgErr: If this value is not null and the return value is DISP_E_TYPEMISMATCH or
	// DISP_E_PARAMNOTFOUND, this argument MUST equal the index (within pDispParams->rgvarg)
	// of the first argument that has an error. Otherwise, it MUST be ignored on receipt.
	ArgError uint32 `idl:"name:pArgErr" json:"arg_error"`
	// rgVarRef: MUST contain the byref arguments as set by the client at the time of the
	// call, and by the server on successful return from the call. Arguments in this array
	// MUST also be stored in reverse order, so that the first byref argument has the highest
	// index in the array.
	VarReference []*oaut.Variant `idl:"name:rgVarRef;size_is:(cVarRef)" json:"var_reference"`
	// Return: The Invoke return value.
	Return int32 `idl:"name:Return" json:"return"`
}

InvokeResponse structure represents the Invoke operation response

func (*InvokeResponse) MarshalNDR

func (o *InvokeResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*InvokeResponse) UnmarshalNDR

func (o *InvokeResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL