Documentation ¶
Index ¶
- Variables
- func DispatchServerHandle(ctx context.Context, o DispatchServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)
- func NewDispatchServerHandle(o DispatchServer) dcerpc.ServerHandle
- func RegisterDispatchServer(conn dcerpc.Conn, o DispatchServer, opts ...dcerpc.Option)
- type DispatchClient
- type DispatchServer
- type GetIDsOfNamesRequest
- type GetIDsOfNamesResponse
- type GetTypeInfoCountRequest
- type GetTypeInfoCountResponse
- type GetTypeInfoRequest
- type GetTypeInfoResponse
- type InvokeRequest
- type InvokeResponse
Constants ¶
This section is empty.
Variables ¶
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} )
var DispatchIDNewenum = -4
DispatchIDNewenum represents the DISPID_NEWENUM RPC constant
var DispatchIDPropertyPut = -3
DispatchIDPropertyPut represents the DISPID_PROPERTYPUT RPC constant
var DispatchIDUnknown = -1
DispatchIDUnknown represents the DISPID_UNKNOWN RPC constant
var DispatchIDValue = 0
DispatchIDValue represents the DISPID_VALUE RPC constant
var DispatchMethod = 1
DispatchMethod represents the DISPATCH_METHOD RPC constant
var DispatchPropertyGet = 2
DispatchPropertyGet represents the DISPATCH_PROPERTYGET RPC constant
var DispatchPropertyPut = 4
DispatchPropertyPut represents the DISPATCH_PROPERTYPUT RPC constant
var DispatchPropertyPutReference = 8
DispatchPropertyPutReference represents the DISPATCH_PROPERTYPUTREF RPC constant
var DispatchZeroArgError = 524288
DispatchZeroArgError represents the DISPATCH_zeroArgErr RPC constant
var DispatchZeroExceptionInfo = 262144
DispatchZeroExceptionInfo represents the DISPATCH_zeroExcepInfo RPC constant
var DispatchZeroVarResult = 131072
DispatchZeroVarResult represents the DISPATCH_zeroVarResult RPC constant
var (
// import guard
GoPackage = "dcom/oaut"
)
Functions ¶
func DispatchServerHandle ¶
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 ¶
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 (*GetIDsOfNamesRequest) UnmarshalNDR ¶
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 (*GetIDsOfNamesResponse) UnmarshalNDR ¶
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 (*GetTypeInfoCountRequest) UnmarshalNDR ¶
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 (*GetTypeInfoCountResponse) UnmarshalNDR ¶
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 (*GetTypeInfoRequest) UnmarshalNDR ¶
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 (*GetTypeInfoResponse) UnmarshalNDR ¶
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 (*InvokeRequest) UnmarshalNDR ¶
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