oaut

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: 10 Imported by: 0

Documentation

Overview

The oaut package implements the OAUT client protocol.

Introduction

The OLE Automation Protocol uses Distributed Component Object Model (DCOM) as its transport layer. It provides support for an additional set of types, a late-bound calling mechanism, and type description and discovery. The late-bound calling mechanism is based on dispatch identifiers and a dispatching table that maps the identifiers to specific operations. The dispatch identifiers and the dispatching table are specified by using IDL extensions specified in this document. Type description and discovery are based on a set of IDL extensions and a set of interfaces that are implemented by type library and type description servers.

Overview

The OLE Automation Protocol extends the use of DCOM by providing support for marshaling an additional set of types (known as automation types) and by providing support for exposing COM components to automation clients (such as scripting engines) through a late-bound calling alternative to the traditional COM calls. Additionally, the OLE Automation Protocol specifies how a type browser can discover and interpret type information provided by a type description server.

The automation client and server can be present on the same machine, or on different machines connected by a network. Automation takes advantage of functionality provided by the Microsoft Component Object Model (for more information, see [MSDN-COM]) and the Microsoft Distributed Component Object Model (as specified in [MS-DCOM]) for creating, activating, and managing the lifetime of the objects exposed by an automation server.

To support late-bound calling, the OLE Automation Protocol specifies the following:

* How a server defines a set of automation methods that can be dispatched, based on a dispatch ID (DISPID) ( 5583e1b8-454c-4147-9f56-f72416a15bee#gt_3792c5cc-783c-4b2a-a71e-c1ec3f432474 ).

* How the server provides a way to map a method name to the DISPID.

* How the server performs the late-bound call, based on the DISPID.

The automation methods are defined by using extensions to the IDL language specified in [C706] sections 6, 7, 8, 9, 10, 11, 12, 13, and 14. These extensions provide the definition of automation interfaces containing automation methods and properties. Each IDL definition of an automation method and property can have a unique (per interface) integer value associated with it. This value is defined as a DISPID and is statically discoverable (from the IDL specification of the method), and dynamically discoverable (through a call to IDispatch::GetIDsOfNames (section 3.1.4.3)). This value is then used by automation clients to invoke the automation method, or to set or retrieve an automation property (through a call to IDispatch::Invoke).

To support this late-bound calling mechanism, Automation defines a set of types, VARIANT (section 2.2.29) being the most important of them. A VARIANT can be thought of as a discriminated union of all automation-supported types. The OLE Automation Protocol imposes the following restriction on the automation interfaces: All types of method arguments and properties can be stored as VARIANT structures.

The following illustration shows a generic automation call sequence:

Index

Constants

This section is empty.

Variables

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

VariantFalse represents the VARIANT_FALSE RPC constant

View Source
var VariantTrue = 65535

VariantTrue represents the VARIANT_TRUE RPC constant

Functions

This section is empty.

Types

type AdvFeatureFlags

type AdvFeatureFlags uint16

AdvFeatureFlags type represents ADVFEATUREFLAGS RPC enumeration.

The following values are used in the field fFeatures of a SAFEARRAY (section 2.2.30.10) data type.

var (
	// FADF_AUTO:  MUST be set if the SAFEARRAY is allocated on the stack. This flag MUST
	// be ignored on receipt.
	AdvFeatureFlagAuto AdvFeatureFlags = 1
	// FADF_STATIC:  MUST be set if the SAFEARRAY is statically allocated. This flag MUST
	// be ignored on receipt.
	AdvFeatureFlagStatic AdvFeatureFlags = 2
	// FADF_EMBEDDED:  MUST be set if the SAFEARRAY is embedded in a structure. This flag
	// MUST be ignored on receipt.
	AdvFeatureFlagEmbedded AdvFeatureFlags = 4
	// FADF_FIXEDSIZE:  MUST be set if the SAFEARRAY cannot be resized or reallocated.
	// This flag MUST be ignored on receipt.
	AdvFeatureFlagFixedSize AdvFeatureFlags = 16
	// FADF_RECORD:  The SAFEARRAY MUST contain elements of a UDT (see section 2.2.28.1)
	AdvFeatureFlagRecord AdvFeatureFlags = 32
	// FADF_HAVEIID:  The SAFEARRAY MUST contain MInterfacePointers elements.
	AdvFeatureFlagHaveIID AdvFeatureFlags = 64
	// FADF_HAVEVARTYPE:  If this bit flag is set, the high word of the cLocks field of
	// the SAFEARRAY MUST contain a VARIANT type constant that describes the type of the
	// array's elements (see sections 2.2.7 and 2.2.30.10).
	AdvFeatureFlagHaveVarType AdvFeatureFlags = 128
	// FADF_BSTR:  The SAFEARRAY MUST contain an array of BSTR elements (see section 2.2.23).
	AdvFeatureFlagString AdvFeatureFlags = 256
	// FADF_UNKNOWN:  The SAFEARRAY MUST contain an array of pointers to IUnknown.
	AdvFeatureFlagUnknown AdvFeatureFlags = 512
	// FADF_DISPATCH:  The SAFEARRAY MUST contain an array of pointers to IDispatch (see
	// section 3.1.4).
	AdvFeatureFlagDispatch AdvFeatureFlags = 1024
	// FADF_VARIANT:  The SAFEARRAY MUST contain an array of VARIANT instances.
	AdvFeatureFlagVariant AdvFeatureFlags = 2048
)

func (AdvFeatureFlags) String

func (o AdvFeatureFlags) String() string

type ArrayDesc

type ArrayDesc struct {
	// tdescElem:  MUST contain a TYPEDESC that specifies the type of the elements in the
	// array as specified in section 2.2.37.
	TypeDescElem *TypeDesc `idl:"name:tdescElem" json:"type_desc_elem"`
	// cDims:  MUST be set to the number of dimensions in the array.
	DimsCount uint16 `idl:"name:cDims" json:"dims_count"`
	// rgbounds:  MUST refer to a SAFEARRAYBOUND that specifies the maximum index value
	// for each dimension of the array, as specified in section 2.2.30.1.
	Bounds []*SafeArrayBound `idl:"name:rgbounds;size_is:(cDims)" json:"bounds"`
}

ArrayDesc structure represents ARRAYDESC RPC structure.

The ARRAYDESC structure is used in a TYPEDESC structure to specify the dimensions of an array and the type of its elements.

func (*ArrayDesc) MarshalNDR

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

func (*ArrayDesc) NDRSizeInfo

func (o *ArrayDesc) NDRSizeInfo() []uint64

func (*ArrayDesc) UnmarshalNDR

func (o *ArrayDesc) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ByteSizedArray

type ByteSizedArray struct {
	// clSize:  MUST be set to the total number of elements in the array. This MUST be nonzero.
	Size uint32 `idl:"name:clSize" json:"size"`
	// pData:  MUST be an array of BYTEs.
	//
	// Data of this type MUST be marshaled as specified in [C706] section 14, with the exception
	// that it MUST be marshaled by using a little-endian data representation, regardless
	// of the data representation format label. For more information, see [C706] section
	// 14.2.5.
	Data []byte `idl:"name:pData;size_is:(clSize)" json:"data"`
}

ByteSizedArray structure represents BYTE_SIZEDARR RPC structure.

The BYTE_SIZEDARR structure specifies a BYTE array.

func (*ByteSizedArray) MarshalNDR

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

func (*ByteSizedArray) UnmarshalNDR

func (o *ByteSizedArray) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type CallConv

type CallConv uint32

CallConv type represents CALLCONV RPC enumeration.

The CALLCONV enumeration values are used in the callconv field of a FUNCDESC to identify the calling convention of a local method defined in the automation type library module, as specified in sections 2.2.42 and 2.2.49.9 .

The following calling convention constants are defined in the CALLCONV enumeration:

var (
	// CC_CDECL:  MUST be set if the method was declared with the cdecl keyword.
	CallConvCdecl CallConv = 1
	// CC_PASCAL:  MUST be set if the method was declared with the pascal keyword.
	CallConvPascal CallConv = 2
	// CC_STDCALL:  MUST be set if the method was declared with the stdcall keyword.
	CallConvStdcall CallConv = 4
)

func (CallConv) String

func (o CallConv) String() string

type Currency

type Currency struct {
	Int64 int64 `idl:"name:int64" json:"int64"`
}

Currency structure represents CURRENCY RPC structure.

The CURRENCY type specifies currency information. It is represented as an 8-byte integer, scaled by 10,000, to give a fixed-point number with 15 digits to the left of the decimal point, and four digits to the right. This representation provides a range of 922337203685477.5807 to –922337203685477.5808. For example, $5.25 is stored as the value 52500.

func (*Currency) MarshalNDR

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

func (*Currency) UnmarshalNDR

func (o *Currency) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type CustomData

type CustomData struct {
	// cCustData:  MUST be set to the number of custom data items in prgCustData.
	CustomDataCount uint32 `idl:"name:cCustData" json:"custom_data_count"`
	// prgCustData:  MUST refer to an array of CUSTDATAITEM structures that contain custom
	// data items, as specified in section 2.2.46.
	CustomData []*CustomDataItem `idl:"name:prgCustData;size_is:(cCustData)" json:"custom_data"`
}

CustomData structure represents CUSTDATA RPC structure.

The CUSTDATA structure is used by an ITypeInfo2 server or ITypeLib2 server to retrieve custom data items, as specified in sections 3.9.4 and 3.13.4.

func (*CustomData) MarshalNDR

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

func (*CustomData) UnmarshalNDR

func (o *CustomData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type CustomDataItem

type CustomDataItem struct {
	// guid:  MUST be set to the GUID associated with the custom data item that uses the
	// [custom] attribute, as specified in section 2.2.49.5.1.
	GUID *dtyp.GUID `idl:"name:guid" json:"guid"`
	// varValue:  MUST be set to the value of the custom data item.
	Value *Variant `idl:"name:varValue" json:"value"`
}

CustomDataItem structure represents CUSTDATAITEM RPC structure.

The CUSTDATAITEM structure is used in a CUSTDATA structure to store custom data items, as specified in section 2.2.47.

func (*CustomDataItem) MarshalNDR

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

func (*CustomDataItem) UnmarshalNDR

func (o *CustomDataItem) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Decimal

type Decimal struct {

	// scale:  MUST be the power of 10 by which to divide the 96-bit integer represented
	// by Hi32 * 2^64 + Lo64. The value MUST be in the range of 0 to 28, inclusive.
	//
	//	+--------+-------------------------------------------+
	//	|        |                                           |
	//	| VALUE  |                  MEANING                  |
	//	|        |                                           |
	//	+--------+-------------------------------------------+
	//	+--------+-------------------------------------------+
	//	| 0 — 28 | Order of magnitude of the decimal number. |
	//	+--------+-------------------------------------------+
	Scale uint8 `idl:"name:scale" json:"scale"`
	// sign:  MUST equal one of the following values.
	//
	//	+-------+----------------------------------------+
	//	|       |                                        |
	//	| VALUE |                MEANING                 |
	//	|       |                                        |
	//	+-------+----------------------------------------+
	//	+-------+----------------------------------------+
	//	|     0 | The decimal contains a positive value. |
	//	+-------+----------------------------------------+
	//	| 0x80  | The decimal contains a negative value. |
	//	+-------+----------------------------------------+
	Sign uint8 `idl:"name:sign" json:"sign"`
	// Hi32:  MUST be the high 32 bits of the 96-bit integer that is scaled and signed to
	// represent the final DECIMAL value.
	Hi32 uint32 `idl:"name:Hi32" json:"hi32"`
	// Lo64:  MUST be the low 64 bits of the 96-bit integer that is scaled and signed to
	// represent the final DECIMAL value.
	Lo64 uint64 `idl:"name:Lo64" json:"lo64"`
	// contains filtered or unexported fields
}

Decimal structure represents DECIMAL RPC structure.

The DECIMAL structure specifies a sign and scale for a number. Decimal variables are represented as 96-bit unsigned integers that are scaled by a variable power of 10.

func (*Decimal) MarshalNDR

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

func (*Decimal) UnmarshalNDR

func (o *Decimal) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DescKind

type DescKind uint32

DescKind type represents DESCKIND RPC enumeration.

The DESCKIND Name Description Constants enumeration values are used by the ITypeComp::Bind method to indicate the kind of element to which a name has been bound, as specified in section 3.5.4.1.

The name description constants are defined in the DESCKIND enumeration.

var (
	// DESCKIND_NONE:  MUST be set if there is no element bound to the name.
	DescKindNone DescKind = 0
	// DESCKIND_FUNCDESC:  MUST be set if the name is bound to a method or property accessor
	// method. MUST NOT be set if the name is bound to an ODL dispinterface property.
	DescKindFuncDesc DescKind = 1
	// DESCKIND_VARDESC:  MUST be set if the name is bound to a data element or ODL dispinterface
	// property.
	DescKindVarDesc DescKind = 2
	// DESCKIND_TYPECOMP:  MUST be set if the name is bound to an enumeration or module.
	DescKindTypeComp DescKind = 3
	// DESCKIND_IMPLICITAPPOBJ:  MUST be set if the name is bound to an appobject coclass
	// (see section 2.2.49.8) or a member of its default nonsource interface (also see 2.2.49.8).
	DescKindImplicitAppObject DescKind = 4
)

func (DescKind) String

func (o DescKind) String() string

type Dispatch

type Dispatch dcom.InterfacePointer

Dispatch structure represents IDispatch RPC structure.

func (*Dispatch) InterfacePointer

func (o *Dispatch) InterfacePointer() *dcom.InterfacePointer

func (*Dispatch) MarshalNDR

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

func (*Dispatch) NDRSizeInfo

func (o *Dispatch) NDRSizeInfo() []uint64

func (*Dispatch) UnmarshalNDR

func (o *Dispatch) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DispatchParams

type DispatchParams struct {
	// rgvarg:  MUST be the array of arguments passed to the method or property call.
	Args []*Variant `idl:"name:rgvarg;size_is:(cArgs)" json:"args"`
	// rgdispidNamedArgs:  MUST be the array of DISPIDs corresponding to the named arguments
	// (see section 3.1.4.4).
	NamedArgs []int32 `idl:"name:rgdispidNamedArgs;size_is:(cNamedArgs)" json:"named_args"`
	// cArgs:  MUST equal the number of arguments passed to the method.
	ArgsCount uint32 `idl:"name:cArgs" json:"args_count"`
	// cNamedArgs:  MUST equal the number of named arguments passed to the method. This
	// value MUST be less than or equal to the value of cArgs.
	//
	// The arguments passed in DISPPARAMS MUST be stored as specified in section 3.1.4.4.2.
	NamedArgsCount uint32 `idl:"name:cNamedArgs" json:"named_args_count"`
}

DispatchParams structure represents DISPPARAMS RPC structure.

The DISPPARAMS structure is used by the Invoke method (see section 3.1.4.4) to contain the arguments passed to a method or property.

func (*DispatchParams) MarshalNDR

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

func (*DispatchParams) UnmarshalNDR

func (o *DispatchParams) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type DwordSizedArray

type DwordSizedArray struct {
	// clSize:  MUST be set to the number of elements within the array. This MUST be nonzero.
	Size uint32 `idl:"name:clSize" json:"size"`
	// pData:  MUST be an array of DWORD elements.
	//
	// Data of this type MUST be marshaled as specified in [C706] section 14, with the exception
	// that it MUST be marshaled by using a little-endian data representation, regardless
	// of the data representation format label. For more information, see [C706] section
	// 14.2.5.
	Data []uint32 `idl:"name:pData;size_is:(clSize)" json:"data"`
}

DwordSizedArray structure represents DWORD_SIZEDARR RPC structure.

The DWORD_SIZEDARR structure defines an array of unsigned 32-bit integers.

func (*DwordSizedArray) MarshalNDR

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

func (*DwordSizedArray) UnmarshalNDR

func (o *DwordSizedArray) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ElemDesc

type ElemDesc struct {
	// tdesc:  MUST contain a TYPEDESC (section 2.2.37) that describes the element, parameter,
	// or return value.
	TypeDesc *TypeDesc `idl:"name:tdesc" json:"type_desc"`
	// paramdesc:  MUST contain a PARAMDESC that has the values as specified in section
	// 2.2.40, if the ELEMDESC is a member of the lprgelemdescParam array in a FUNCDESC
	// (section 2.2.42) structure. Otherwise, it MUST contain a PARAMDESC that has the data
	// fields pparamdescex and wParamFlags set to NULL and 0 respectively.
	ParamDesc *ParamDesc `idl:"name:paramdesc" json:"param_desc"`
}

ElemDesc structure represents ELEMDESC RPC structure.

The ELEMDESC structure is used in the FUNCDESC (section 2.2.42) and VARDESC (section 2.2.43) structures to describe a member of a structure, a parameter, or the return value of a method.

func (*ElemDesc) MarshalNDR

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

func (*ElemDesc) UnmarshalNDR

func (o *ElemDesc) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type EnumVariant

type EnumVariant dcom.InterfacePointer

EnumVariant structure represents IEnumVARIANT RPC structure.

func (*EnumVariant) InterfacePointer

func (o *EnumVariant) InterfacePointer() *dcom.InterfacePointer

func (*EnumVariant) MarshalNDR

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

func (*EnumVariant) NDRSizeInfo

func (o *EnumVariant) NDRSizeInfo() []uint64

func (*EnumVariant) UnmarshalNDR

func (o *EnumVariant) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ExceptionInfo

type ExceptionInfo struct {
	// wCode:   An implementation-specific<14> value that identifies an error.
	//
	//	+--------------+----------------------------------------------------------------------------------+
	//	|              |                                                                                  |
	//	|    VALUE     |                                     MEANING                                      |
	//	|              |                                                                                  |
	//	+--------------+----------------------------------------------------------------------------------+
	//	+--------------+----------------------------------------------------------------------------------+
	//	|            0 | The value MUST be zero for either of the following conditions: This field does   |
	//	|              | not contain an error code. The value in the scode field is nonzero.              |
	//	+--------------+----------------------------------------------------------------------------------+
	//	| 1000 < value | Implementation-specific error values MUST be greater than 1000.                  |
	//	+--------------+----------------------------------------------------------------------------------+
	Code uint16 `idl:"name:wCode" json:"code"`

	// bstrSource:  MUST<15> be set to an implementation-specific string that identifies
	// the source of the exception.
	Source *String `idl:"name:bstrSource" json:"source"`
	// bstrDescription:  MUST<16> be set to an implementation-specific string, or to a NULL
	// BSTR if no description is available.
	Description *String `idl:"name:bstrDescription" json:"description"`
	// bstrHelpFile:  MUST<17> be set to an implementation-specific string, or to a NULL
	// BSTR if no help is available.
	HelpFile *String `idl:"name:bstrHelpFile" json:"help_file"`
	// dwHelpContext:  MUST<18> be set to an implementation-specific integer. If bstrHelpFile
	// is NULL, this field MUST be set to 0, and MUST be ignored on receipt.
	HelpContext uint32 `idl:"name:dwHelpContext" json:"help_context"`

	// pfnDeferredFillIn:  MAY be set to NULL, and MUST be ignored on receipt.<19>
	PfnDeferredFillIn uint64 `idl:"name:pfnDeferredFillIn" json:"pfn_deferred_fill_in"`
	// scode:  MUST be set to a failure HRESULT that describes the error, or to 0 to indicate
	// that it does not contain an error code. If wCode is nonzero, this field MUST be set
	// to 0.
	HResult int32 `idl:"name:scode" json:"h_result"`
	// contains filtered or unexported fields
}

ExceptionInfo structure represents EXCEPINFO RPC structure.

The EXCEPINFO structure is filled in by an automation server to describe an exception that occurred during a call to Invoke (as specified in section 3.1.4.4). If no exception occurred, the server MUST set both wCode and scode to 0.

func (*ExceptionInfo) MarshalNDR

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

func (*ExceptionInfo) UnmarshalNDR

func (o *ExceptionInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type FlaggedWordBlob

type FlaggedWordBlob struct {
	// cBytes:  MUST be the size, in bytes, of the asData array.
	//
	// Note  A value of 0xFFFFFFFF MUST be considered as representing a null BSTR.
	BytesCount uint32 `idl:"name:cBytes" json:"bytes_count"`
	// clSize:  MUST be the total number of unsigned shorts in the asData array. This value
	// MUST be half the value of cBytes, rounded up, unless this is a null  BSTR. In the
	// latter case, a value of 0 MUST be used.
	Size uint32 `idl:"name:clSize" json:"size"`
	// asData:  An array of unsigned shorts. If clSize is 0, asData MUST not contain any
	// elements.
	//
	// Data of this type MUST be marshaled as specified in [C706], section 14, with the
	// exception that it MUST be marshaled by using a little-endian data representation
	// regardless of the data representation format label. For more information, see [C706]
	// section 14.2.5.
	Data string `idl:"name:asData;size_is:(clSize)" json:"data"`
}

FlaggedWordBlob structure represents FLAGGED_WORD_BLOB RPC structure.

The FLAGGED_WORD_BLOB structure defines a type for transferring length-prefixed data.

func (*FlaggedWordBlob) MarshalNDR

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

func (*FlaggedWordBlob) NDRSizeInfo

func (o *FlaggedWordBlob) NDRSizeInfo() []uint64

func (*FlaggedWordBlob) UnmarshalNDR

func (o *FlaggedWordBlob) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type FuncDesc

type FuncDesc struct {
	// memid:  MUST be set to the MEMBERID (section 2.2.35) of the method.
	MemberID int32 `idl:"name:memid" json:"member_id"`

	// lprgelemdescParam:  MUST refer to an array of ELEMDESC that contains one entry for
	// each element in the method's parameter table.
	LprgelemdescParam []*ElemDesc `idl:"name:lprgelemdescParam;size_is:(cParams)" json:"lprgelemdesc_param"`
	// funckind:  MUST be set to one of the values of the FUNCKIND (section 2.2.12) enumeration.
	FuncKind FuncKind `idl:"name:funckind" json:"func_kind"`
	// invkind:  MUST be set to one of the values of the INVOKEKIND (section 2.2.14) enumeration.
	InvokeKind InvokeKind `idl:"name:invkind" json:"invoke_kind"`
	// callconv:  MUST be set to one of the values of the CALLCONV (section 2.2.10) enumeration.
	CallConv CallConv `idl:"name:callconv" json:"call_conv"`
	// cParams:  MUST be set to the length of the lprgelemdescParam array.
	ParamsCount int16 `idl:"name:cParams" json:"params_count"`
	// cParamsOpt:  SHOULD be set to the number of optional VARIANT parameters<21>. MUST
	// be set to -1 if the method was declared with the [vararg] attribute. Otherwise, MUST
	// be set to 0.
	ParamsOptCount int16 `idl:"name:cParamsOpt" json:"params_opt_count"`
	// oVft:  MUST be set to either 0 or to the opnum of the interface method multiplied
	// by the system pointer size value (as specified in sections 2.2.44 and 3.11.1).
	VFT int16 `idl:"name:oVft" json:"vft"`

	// elemdescFunc:  MUST contain an ELEMDESC that specifies the return type of the method,
	// as specified in section 2.2.41.
	ElemDescFunc *ElemDesc `idl:"name:elemdescFunc" json:"elem_desc_func"`
	// wFuncFlags:  MUST be set to a combination of the FUNCFLAGS bit flags (as specified
	// in section 2.2.11), or set to 0.
	FuncFlags uint16 `idl:"name:wFuncFlags" json:"func_flags"`
	// contains filtered or unexported fields
}

FuncDesc structure represents FUNCDESC RPC structure.

The FUNCDESC structure is used by an ITypeComp server or ITypeInfo server to describe a method, as specified in sections 3.5.4.1 and 3.7.4.3.

func (*FuncDesc) MarshalNDR

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

func (*FuncDesc) UnmarshalNDR

func (o *FuncDesc) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type FuncFlags

type FuncFlags uint16

FuncFlags type represents FUNCFLAGS RPC enumeration.

The FUNCFLAGS enumeration values are used in the wFuncFlags field of a FUNCDESC to identify features of a function, as specified in section 2.2.42.

The function feature constants are defined in the FUNCFLAGS enumeration.

var (
	// FUNCFLAG_FRESTRICTED:  MUST be set if the method or property was declared with the
	// [restricted] attribute (as specified in section 2.2.49.5.1).
	FuncFlagsRestricted FuncFlags = 1
	// FUNCFLAG_FSOURCE:  MUST be set if the method or property is a member of an interface
	// declared with the [source] attribute (as specified in section 2.2.49.8).
	FuncFlagsSource FuncFlags = 2
	// FUNCFLAG_FBINDABLE:  MUST be set if the property was declared with the [bindable]
	// attribute (as specified in section 2.2.49.5.2).
	FuncFlagsBindable FuncFlags = 4
	// FUNCFLAG_FREQUESTEDIT:  MUST be set if the property was declared with the [requestedit]
	// attribute (as specified in section 2.2.49.5.2).
	FuncFlagsRequestEdit FuncFlags = 8
	// FUNCFLAG_FDISPLAYBIND:  MUST be set if the property was declared with the [displaybind]
	// attribute (as specified in section 2.2.49.5.2).
	FuncFlagsDisplayBind FuncFlags = 16
	// FUNCFLAG_FDEFAULTBIND:  MUST be set if the property was declared with the [defaultbind]
	// attribute (as specified in section 2.2.49.5.2).
	FuncFlagsDefaultBind FuncFlags = 32
	// FUNCFLAG_FHIDDEN:  MUST be set if the method or property was declared with the [hidden]
	// attribute (as specified in section 2.2.49.5.1).
	FuncFlagsHidden FuncFlags = 64
	// FUNCFLAG_FUSESGETLASTERROR:  MUST be set if the method or property was declared
	// with the [usesgetlasterror] attribute (as specified in section 2.2.49.9) and MUST
	// be ignored on receipt.
	FuncFlagsFusesgetlasterror FuncFlags = 128
	// FUNCFLAG_FDEFAULTCOLLELEM:  MUST be set if the method or property was declared with
	// the [defaultcollelem] attribute (as specified in section 2.2.49.5.1).
	FuncFlagsDefaultCollElem FuncFlags = 256
	// FUNCFLAG_FUIDEFAULT:  MUST be set if the method or property was declared with the
	// [uidefault] attribute (as specified in section 2.2.49.5.1).
	FuncFlagsUIDefault FuncFlags = 512
	// FUNCFLAG_FNONBROWSABLE:  MUST be set if the property was declared with the [nonbrowsable]
	// attribute (as specified in section 2.2.49.5.1).
	FuncFlagsNonBrowsable FuncFlags = 1024
	// FUNCFLAG_FREPLACEABLE:  MUST be set if the property was declared with the [replaceable]
	// attribute (as specified in section 2.2.49.5.1). MUST be ignored on receipt.
	FuncFlagsReplaceable FuncFlags = 2048
	// FUNCFLAG_FIMMEDIATEBIND:  MUST be set if the property was declared with the [immediatebind]
	// attribute (as specified in section 2.2.49.5.2).
	FuncFlagsImmediateBind FuncFlags = 4096
)

func (FuncFlags) String

func (o FuncFlags) String() string

type FuncKind

type FuncKind uint32

FuncKind type represents FUNCKIND RPC enumeration.

The FUNCKIND enumeration values are used in the funckind field of a FUNCDESC to specify the way that a method is accessed, as specified in section 2.2.42.

The following function access constants are defined in the FUNCKIND enumeration.

var (
	// FUNC_PUREVIRTUAL:  MUST be set if the method described by the FUNCDESC structure
	// is a member of an interface whose associated TYPEKIND value is TKIND_INTERFACE (as
	// specified in section 2.2.17).
	FuncKindPureVirtual FuncKind = 1
	// FUNC_STATIC:  MUST be set if the method described by the FUNCDESC structure is a
	// method member of the module defined with the automation scope (as specified in section
	// 2.2.49.9).
	FuncKindStatic FuncKind = 3
	// FUNC_DISPATCH:  MUST be set if the method described by the FUNCDESC structure is
	// a member of an interface whose associated TYPEKIND value is TKIND_DISPATCH (as specified
	// in section 2.2.17). MUST NOT be set if the FUNC_PUREVIRTUAL flag is set.
	FuncKindDispatch FuncKind = 4
)

func (FuncKind) String

func (o FuncKind) String() string

type HyperSizedArray

type HyperSizedArray struct {
	// clSize:  MUST be set to the total number of elements in the array. This MUST be nonzero.
	Size uint32 `idl:"name:clSize" json:"size"`
	// pData:  MUST be an array of hyper elements.
	//
	// Data of this type MUST be marshaled as specified in [C706] section 14, with the exception
	// that it MUST be marshaled by using a little-endian data representation, regardless
	// of the data representation format label. For more information, see [C706] section
	// 14.2.5.
	Data []int64 `idl:"name:pData;size_is:(clSize)" json:"data"`
}

HyperSizedArray structure represents HYPER_SIZEDARR RPC structure.

The HYPER_SIZEDARR structure defines an array of 64-bit integers.

func (*HyperSizedArray) MarshalNDR

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

func (*HyperSizedArray) UnmarshalNDR

func (o *HyperSizedArray) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ImplTypeFlags

type ImplTypeFlags uint16

ImplTypeFlags type represents IMPLTYPEFLAGS RPC enumeration.

The IMPLTYPEFLAGS enumeration values are stored in the pImplTypeFlags parameter of the ITypeInfo::GetImplTypeFlags method to specify the implementation features of a COM server, as specified in section 3.7.4.7.

The following implementation type feature constants are defined in the IMPLTYPEFLAGS enumeration.

var (
	// IMPLTYPEFLAG_FDEFAULT:  MUST be set if the interface was declared with the [default]
	// attribute (as specified in section 2.2.49.8).
	ImplTypeFlagsDefault ImplTypeFlags = 1
	// IMPLTYPEFLAG_FSOURCE:  MUST be set if the interface was declared with the [source]
	// or [defaultvtable] attributes (as specified in section 2.2.49.8).
	ImplTypeFlagsSource ImplTypeFlags = 2
	// IMPLTYPEFLAG_FRESTRICTED:  MUST be set if the interface was declared with the [restricted]
	// attribute (as specified in section 2.2.49.8).
	ImplTypeFlagsRestricted ImplTypeFlags = 4
	// IMPLTYPEFLAG_FDEFAULTVTABLE:  MUST be set if the interface was declared with the
	// [defaultvtable] attribute (as specified in section 2.2.49.8).
	ImplTypeFlagsDefaultVTable ImplTypeFlags = 8
)

func (ImplTypeFlags) String

func (o ImplTypeFlags) String() string

type InvokeKind

type InvokeKind uint32

InvokeKind type represents INVOKEKIND RPC enumeration.

The INVOKEKIND enumeration values are used in the invkind field of a FUNCDESC (section 2.2.42) to specify the way that a method is invoked using IDispatch::Invoke (section 3.1.4.4). They are also used in the ITypeInfo2::GetFuncIndexOfMemId, ITypeInfo::GetDllEntry and ITypeComp::Bind methods to distinguish between properties and property accessor methods that have the same MEMBERID (section 2.2.35) but are invoked differently.

Fields and parameters that contain function invocation constants MUST contain a single INVOKEKIND value, and MUST NOT contain bitwise combinations of multiple INVOKEKIND values.

The function invocation constants are defined in the INVOKEKIND enumeration.

var (
	// INVOKE_FUNC:  MUST be set if the type member is a method declared without the [propget],
	// [propput], or [propputref] attributes, or to specify that a client method request
	// MUST NOT return a property.
	InvokeKindFunc InvokeKind = 1
	// INVOKE_PROPERTYGET:  MUST be set if the type member is a property declared with
	// the [propget] attribute (as specified in section 2.2.49.5.1), or to specify that
	// a client method request MUST NOT return anything but an ODL dispinterface property
	// (as specified in section 2.2.49.5.3) or a property declared with the [propget] attribute.
	InvokeKindPropertyGet InvokeKind = 2
	// INVOKE_PROPERTYPUT:  MUST be set if the type member is a property declared with
	// the [propput] attribute (as specified in section 2.2.49.5.1), or to specify that
	// a client method request MUST NOT return anything but a property declared with the
	// [propput] attribute.
	InvokeKindPropertyPut InvokeKind = 4
	// INVOKE_PROPERTYPUTREF:  MUST be set if the type member is a property declared with
	// the [propputref] attribute (as specified in section 2.2.49.5.1), or to specify that
	// a client method request MUST NOT return anything but a property declared with the
	// [propputref] attribute.
	InvokeKindPropertyPutReference InvokeKind = 8
)

func (InvokeKind) String

func (o InvokeKind) String() string

type LibFlags

type LibFlags uint32

LibFlags type represents LIBFLAGS RPC enumeration.

The LIBFLAGS enumeration values are used in the wLibFlags field of a TLIBATTR to specify the features of the automation scope of an ITypeLib server, as specified in section 2.2.45.

The Type library feature constants are defined in the LIBFLAGS enumeration.

var (
	// LIBFLAG_FRESTRICTED:  MUST be set if the automation scope was declared with the
	// [restricted] attribute (as specified in section 2.2.49.2).
	LibFlagsRestricted LibFlags = 1
	// LIBFLAG_FCONTROL:  MUST be set if the automation scope was declared with the [control]
	// attribute (as specified in section 2.2.49.2).
	LibFlagsControl LibFlags = 2
	// LIBFLAG_FHIDDEN:  MUST be set if the automation scope was declared with the [hidden]
	// attribute (as specified in section 2.2.49.2).
	LibFlagsHidden LibFlags = 4
	// LIBFLAG_FHASDISKIMAGE:  MAY be set <4>and MUST be ignored on receipt.
	LibFlagsHasDiskImage LibFlags = 8
)

func (LibFlags) String

func (o LibFlags) String() string

type ParamDesc

type ParamDesc struct {
	// pparamdescex:  MUST refer to a PARAMDESCEX structure that specifies the default value
	// of the parameter if the PARAMFLAG_FHASDEFAULT flag is set in the wParamFlags field.
	// MUST be set to NULL otherwise.
	ParamDescEx *ParamDescEx `idl:"name:pparamdescex" json:"param_desc_ex"`
	// wParamFlags:  MUST be set to a combination of the PARAMFLAG (section 2.2.15) bit
	// flags if the PARAMDESC belongs to an element of the lprgelemdescParam array in a
	// FUNCDESC (section 2.2.42) structure. MUST be set to 0 otherwise.
	ParamFlags uint16 `idl:"name:wParamFlags" json:"param_flags"`
}

ParamDesc structure represents PARAMDESC RPC structure.

The PARAMDESC structure is used in an ELEMDESC (section 2.2.41) structure to specify the features of a method parameter.

func (*ParamDesc) MarshalNDR

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

func (*ParamDesc) UnmarshalNDR

func (o *ParamDesc) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ParamDescEx

type ParamDescEx struct {
	// cBytes:  MUST be set to an implementation-specific value.<20>
	BytesCount uint32 `idl:"name:cBytes" json:"bytes_count"`
	// varDefaultValue:  MUST contain a VARIANT that specifies the default value of the
	// parameter.
	VarDefaultValue *Variant `idl:"name:varDefaultValue" json:"var_default_value"`
}

ParamDescEx structure represents PARAMDESCEX RPC structure.

The PARAMDESCEX structure is used in a PARAMDESC (section 2.2.40) structure to specify information about the default value of a parameter.

func (*ParamDescEx) MarshalNDR

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

func (*ParamDescEx) UnmarshalNDR

func (o *ParamDescEx) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ParamFlags

type ParamFlags uint16

ParamFlags type represents PARAMFLAGS RPC enumeration.

The PARAMFLAGS enumeration values are used in the wParamFlags field of a PARAMFLAGS to identify the features of a method parameter, as specified in section 2.2.40.

The following parameter feature constants are defined in the PARAMFLAGS enumeration.

var (
	// PARAMFLAG_NONE:  The behavior of the parameter is not specified.
	ParamFlagsNone ParamFlags = 0
	// PARAMFLAG_FIN:  MUST be set if the parameter was declared by using the [in] attribute
	// (for more information, see section 2.2.49.6).
	ParamFlagsIn ParamFlags = 1
	// PARAMFLAG_FOUT:  MUST be set if the parameter was declared by using the [out] attribute
	// (for more information, see section 2.2.49.5).
	ParamFlagsOut ParamFlags = 2
	// PARAMFLAG_FLCID:  MUST be set if the parameter was declared by using the [lcid]
	// attribute (for more information, see section 2.2.49.6).
	ParamFlagsLocaleID ParamFlags = 4
	// PARAMFLAG_FRETVAL:  MUST be set if the parameter was declared by using the [retval]
	// attribute (for more information, see section 2.2.49.6).
	ParamFlagsReturnValue ParamFlags = 8
	// PARAMFLAG_FOPT:  MUST be set if the parameter was declared by using the [optional]
	// attribute (for more information, see section 2.2.49.6). MUST be set if the PARAMFLAG_FHASDEFAULT
	// flag is set.
	ParamFlagsOptional ParamFlags = 16
	// PARAMFLAG_FHASDEFAULT:  MUST be set if the parameter was declared by using the [defaultvalue]
	// attribute (for more information, see section 2.2.49.6).
	ParamFlagsHasDefault ParamFlags = 32
	// PARAMFLAG_FHASCUSTDATA:  MAY<2> be set if the parameter was declared by using the
	// [custom] attribute (for more information, see section 2.2.49.2).
	ParamFlagsHasCustomData ParamFlags = 64
)

func (ParamFlags) String

func (o ParamFlags) String() string

type Record

type Record struct {
	Flags      uint32                 `idl:"name:fFlags" json:"flags"`
	Size       uint32                 `idl:"name:clSize" json:"size"`
	RecordInfo *dcom.InterfacePointer `idl:"name:pRecInfo" json:"record_info"`
	Record     []byte                 `idl:"name:pRecord;size_is:(clSize)" json:"record"`
}

Record structure represents _BRECORD RPC structure.

func (*Record) MarshalNDR

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

func (*Record) UnmarshalNDR

func (o *Record) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type RecordInfo

type RecordInfo struct {
	// libraryGuid:   MUST be set to a GUID that identifies the IDL automation scope of
	// the UDT (see section 2.2.49.2).
	LibraryGUID *dtyp.GUID `idl:"name:libraryGuid" json:"library_guid"`
	// verMajor:   MUST be set to the major version of the UDT automation scope (see section
	// 2.2.49.2).
	VerMajor uint32 `idl:"name:verMajor" json:"ver_major"`
	// recGuid:  MUST be set to the GUID of the UDT.
	RecordGUID *dtyp.GUID `idl:"name:recGuid" json:"record_guid"`
	// verMinor:   MUST be set to the minor version of the UDT's automation scope (see section
	// 2.2.49.2).
	VerMinor uint32 `idl:"name:verMinor" json:"ver_minor"`
	// Lcid:   MUST be set to the locale ID of the UDT's automation scope (see section 2.2.49.2).
	//
	// RecordInfoData structures allow a client and a server to fully specify the identity
	// of the UDT type being marshaled in the containing BRECORD (section 2.2.28.2). The
	// client and the server MUST be able to reference the same type definition, by sharing
	// through an unspecified mechanism a consistent view of the IDL automation scope of
	// the UDT.<13>
	//
	// Data of this type MUST be marshaled as specified in [C706] section 14, with the exception
	// that it MUST be marshaled by using a little-endian data representation, regardless
	// of the data representation format label. For more information, see [C706] section
	// 14.2.5.
	LocaleID uint32 `idl:"name:Lcid" json:"locale_id"`
}

RecordInfo structure represents RecordInfo RPC structure.

The RecordInfoData structure specifies information that is needed to identify the definition of a UDT, such as the GUID and version of the automation scope that defines the UDT, and the GUID of the type itself.

func (*RecordInfo) MarshalNDR

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

func (*RecordInfo) UnmarshalNDR

func (o *RecordInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArray

type SafeArray struct {
	DimsCount      uint16            `idl:"name:cDims" json:"dims_count"`
	Features       uint16            `idl:"name:fFeatures" json:"features"`
	ElementsLength uint32            `idl:"name:cbElements" json:"elements_length"`
	LocksCount     uint32            `idl:"name:cLocks" json:"locks_count"`
	ArrayStructs   *SafeArrayUnion   `idl:"name:uArrayStructs" json:"array_structs"`
	Bound          []*SafeArrayBound `idl:"name:rgsabound;size_is:(cDims)" json:"bound"`
}

SafeArray structure represents _SAFEARRAY RPC structure.

func (*SafeArray) MarshalNDR

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

func (*SafeArray) NDRSizeInfo

func (o *SafeArray) NDRSizeInfo() []uint64

func (*SafeArray) UnmarshalNDR

func (o *SafeArray) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayBound

type SafeArrayBound struct {
	// cElements:  MUST be set to the number of elements in the current dimension. MUST
	// be nonzero.
	ElementsCount uint32 `idl:"name:cElements" json:"elements_count"`
	// lLbound:  MUST be set to the lower bound of the current dimension.
	//
	// Data of this type MUST be marshaled as specified in [C706] section 14, except that
	// it MUST be marshaled by using a little-endian data representation, regardless of
	// the data representation format label. For more information, see [C706] section 14.2.5.
	LowerBound int32 `idl:"name:lLbound" json:"lower_bound"`
}

SafeArrayBound structure represents SAFEARRAYBOUND RPC structure.

The SAFEARRAYBOUND structure specifies the bounds of one dimension of a SAFEARRAY.

func (*SafeArrayBound) MarshalNDR

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

func (*SafeArrayBound) UnmarshalNDR

func (o *SafeArrayBound) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayDispatch

type SafeArrayDispatch struct {
	// Size:  MUST be set to the total number of elements in the array.
	Size uint32 `idl:"name:Size" json:"size"`
	// apDispatch:  MUST be an array of MInterfacePointer elements (see [MS-DCOM] section
	// 2.2.14). The iid field in the OBJREF MUST be IID_IDispatch (see section 1.9).
	//
	// The Size field of this type MUST be marshaled as specified in [C706] section 14,
	// with the exception that it MUST be marshaled by using a little-endian data representation,
	// regardless of the data representation format label. For more information, see [C706]
	// section 14.2.5.
	Dispatch []*Dispatch `idl:"name:apDispatch;size_is:(Size);pointer:ref" json:"dispatch"`
}

SafeArrayDispatch structure represents SAFEARR_DISPATCH RPC structure.

The SAFEARR_DISPATCH structure specifies an array of MInterfacePointer elements (see [MS-DCOM] section 2.2.14) whose IPID is IID_IDispatch (see section 1.9).

func (*SafeArrayDispatch) MarshalNDR

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

func (*SafeArrayDispatch) UnmarshalNDR

func (o *SafeArrayDispatch) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayHaveIID

type SafeArrayHaveIID struct {
	// Size:  MUST be set to the total number of elements in the array. This MUST be nonzero.
	Size uint32 `idl:"name:Size" json:"size"`
	// apUnknown:  MUST be an array of MInterfacePointer elements. The OBJREF iid field
	// MUST be the same as the value of the iid.
	Unknown []*dcom.Unknown `idl:"name:apUnknown;size_is:(Size);pointer:ref" json:"unknown"`
	// iid:  MUST specify the IID of each of the elements in the SAFEARRAY.
	//
	// The Size and iid fields of this type MUST be marshaled as specified in [C706] section
	// 14, with the exception that it MUST be marshaled by using a little-endian data representation,
	// regardless of the data representation format label. For more information, see [C706]
	// section 14.2.5.
	IID *dcom.IID `idl:"name:iid" json:"iid"`
}

SafeArrayHaveIID structure represents SAFEARR_HAVEIID RPC structure.

The SAFEARR_HAVEIID structure defines an array of MInterfacePointers (see [MS-DCOM] section 2.2.14

func (*SafeArrayHaveIID) MarshalNDR

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

func (*SafeArrayHaveIID) UnmarshalNDR

func (o *SafeArrayHaveIID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayRecord

type SafeArrayRecord struct {
	// Size:  The number of BRECORD elements in the aRecord array. This MUST be set to 1.
	Size uint32 `idl:"name:Size" json:"size"`
	// aRecord:  MUST be the collection of UDTs as specified in BRECORD (see section 2.2.28.2).
	//
	// The Size field of this type MUST be marshaled as specified in [C706] section 14,
	// with the exception that it MUST be marshaled by using a little-endian data representation,
	// regardless of the data representation format label. For more information, see [C706]
	// section 14.2.5.
	Record []*Record `idl:"name:aRecord;size_is:(Size);pointer:ref" json:"record"`
}

SafeArrayRecord structure represents SAFEARR_BRECORD RPC structure.

The SAFEARR_BRECORD structure specifies an array of UDTs.

func (*SafeArrayRecord) MarshalNDR

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

func (*SafeArrayRecord) UnmarshalNDR

func (o *SafeArrayRecord) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayString

type SafeArrayString struct {
	// Size:  MUST be set to the total number of elements in the array.
	Size uint32 `idl:"name:Size" json:"size"`
	// aBstr:  MUST be an array of BSTRs (see section 2.2.23).
	//
	// Data of this type MUST be marshaled as specified in [C706] section 14, with the exception
	// that it MUST be marshaled by using a little-endian data representation, regardless
	// of the data representation format label. For more information, see [C706] section
	// 14.2.5.
	String []*String `idl:"name:aBstr;size_is:(Size);pointer:ref" json:"string"`
}

SafeArrayString structure represents SAFEARR_BSTR RPC structure.

The SAFEARR_BSTR structure specifies an array of BSTRs (see section 2.2.23).

func (*SafeArrayString) MarshalNDR

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

func (*SafeArrayString) UnmarshalNDR

func (o *SafeArrayString) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayType

type SafeArrayType uint32

SafeArrayType type represents SF_TYPE RPC enumeration.

The SF_TYPE enumeration values are used in the discriminant field, sfType, of a SAFEARRAYUNION structure.

The SAFEARRAY feature constants are defined in the SF_TYPE enumeration.

var (
	// SF_ERROR:  This value means that the SAFEARRAY was incorrectly marshaled. The receiver
	// MUST reject any call that has a SAFEARRAY argument with this flag specified, by raising
	// an RPC_X_BAD_STUB_DATA RPC exception.
	//
	// Hex value is 0x0000000A.
	SafeArrayTypeError SafeArrayType = 10
	// SF_I1:  The type of the elements contained in the SAFEARRAY MUST be a 1-byte integer.
	//
	// Hex value is 0x00000010.
	SafeArrayTypeI1 SafeArrayType = 16
	// SF_I2:  The type of the elements contained in the SAFEARRAY MUST be a 2-byte integer.
	//
	// Hex value is 0x00000002.
	SafeArrayTypeI2 SafeArrayType = 2
	// SF_I4:  The type of the elements contained in the SAFEARRAY MUST be a 4-byte integer.
	//
	// Hex value is 0x00000003.
	SafeArrayTypeI4 SafeArrayType = 3
	// SF_I8:  The type of the elements contained in the SAFEARRAY MUST be an 8-byte integer.
	//
	// Hex value is 0x00000014.
	SafeArrayTypeI8 SafeArrayType = 20
	// SF_BSTR:  The type of the elements contained in the SAFEARRAY MUST be a BSTR.
	//
	// Hex value is 0x00000008.
	SafeArrayTypeString SafeArrayType = 8
	// SF_UNKNOWN:  The type of the elements contained in the SAFEARRAY MUST be a pointer
	// to IUnknown.
	//
	// Hex value is 0x0000000D.
	SafeArrayTypeUnknown SafeArrayType = 13
	// SF_DISPATCH:  The type of the elements contained in the SAFEARRAY MUST be a pointer
	// to IDispatch (see section 3.1.4).
	//
	// Hex value is 0x00000009.
	SafeArrayTypeDispatch SafeArrayType = 9
	// SF_VARIANT:  The type of the elements contained in the SAFEARRAY MUST be VARIANT.
	//
	// Hex value is 0x0000000C.
	SafeArrayTypeVariant SafeArrayType = 12
	// SF_RECORD:  The type of the elements contained in the SAFEARRAY is a user-defined
	// type (UDT) (as defined in section 2.2.28.1.
	//
	// Hex value is 0x00000024.
	SafeArrayTypeRecord SafeArrayType = 36
	// SF_HAVEIID:  The type of the elements contained in the SAFEARRAY MUST be an MInterfacePointer.
	//
	// Hex value is 0x0000800D.
	SafeArrayTypeHaveIID SafeArrayType = 32781
)

func (SafeArrayType) String

func (o SafeArrayType) String() string

type SafeArrayUnion

type SafeArrayUnion struct {
	SafeArrayType uint32
	// Types that are assignable to Value
	//
	// *SafeArrayUnion_String
	// *SafeArrayUnion_Unknown
	// *SafeArrayUnion_Dispatch
	// *SafeArrayUnion_Variant
	// *SafeArrayUnion_Record
	// *SafeArrayUnion_HaveIID
	// *SafeArrayUnion_Byte
	// *SafeArrayUnion_Word
	// *SafeArrayUnion_Long
	// *SafeArrayUnion_Hyper
	Value is_SafeArrayUnion `json:"value"`
}

SafeArrayUnion structure represents SAFEARRAYUNION RPC union.

The SAFEARRAYUNION union defines the mapping between the discriminant value and the contained array data.

_wireSAFEARRAY_UNION: MUST contain an instance of the type, according to the value of the union discriminant.

The sfType field MUST be marshaled as specified in [C706] section 14, with the exception that it MUST be marshaled by using a little-endian data representation, regardless of the data representation format label. For more information, see [C706] section 14.2.5.

func (*SafeArrayUnion) GetValue

func (o *SafeArrayUnion) GetValue() any

func (*SafeArrayUnion) MarshalNDR

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

func (*SafeArrayUnion) UnmarshalNDR

func (o *SafeArrayUnion) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayUnion_Byte

type SafeArrayUnion_Byte struct {
	Byte *ByteSizedArray `idl:"name:ByteStr" json:"byte"`
}

SafeArrayUnion_Byte structure represents SAFEARRAYUNION RPC union arm.

It has following labels: 16

func (*SafeArrayUnion_Byte) MarshalNDR

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

func (*SafeArrayUnion_Byte) UnmarshalNDR

func (o *SafeArrayUnion_Byte) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayUnion_Dispatch

type SafeArrayUnion_Dispatch struct {
	Dispatch *SafeArrayDispatch `idl:"name:DispatchStr" json:"dispatch"`
}

SafeArrayUnion_Dispatch structure represents SAFEARRAYUNION RPC union arm.

It has following labels: 9

func (*SafeArrayUnion_Dispatch) MarshalNDR

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

func (*SafeArrayUnion_Dispatch) UnmarshalNDR

func (o *SafeArrayUnion_Dispatch) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayUnion_HaveIID

type SafeArrayUnion_HaveIID struct {
	HaveIID *SafeArrayHaveIID `idl:"name:HaveIidStr" json:"have_iid"`
}

SafeArrayUnion_HaveIID structure represents SAFEARRAYUNION RPC union arm.

It has following labels: 32781

func (*SafeArrayUnion_HaveIID) MarshalNDR

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

func (*SafeArrayUnion_HaveIID) UnmarshalNDR

func (o *SafeArrayUnion_HaveIID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayUnion_Hyper

type SafeArrayUnion_Hyper struct {
	Hyper *HyperSizedArray `idl:"name:HyperStr" json:"hyper"`
}

SafeArrayUnion_Hyper structure represents SAFEARRAYUNION RPC union arm.

It has following labels: 20

func (*SafeArrayUnion_Hyper) MarshalNDR

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

func (*SafeArrayUnion_Hyper) UnmarshalNDR

func (o *SafeArrayUnion_Hyper) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayUnion_Long

type SafeArrayUnion_Long struct {
	Long *DwordSizedArray `idl:"name:LongStr" json:"long"`
}

SafeArrayUnion_Long structure represents SAFEARRAYUNION RPC union arm.

It has following labels: 3

func (*SafeArrayUnion_Long) MarshalNDR

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

func (*SafeArrayUnion_Long) UnmarshalNDR

func (o *SafeArrayUnion_Long) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayUnion_Record

type SafeArrayUnion_Record struct {
	Record *SafeArrayRecord `idl:"name:RecordStr" json:"record"`
}

SafeArrayUnion_Record structure represents SAFEARRAYUNION RPC union arm.

It has following labels: 36

func (*SafeArrayUnion_Record) MarshalNDR

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

func (*SafeArrayUnion_Record) UnmarshalNDR

func (o *SafeArrayUnion_Record) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayUnion_String

type SafeArrayUnion_String struct {
	String *SafeArrayString `idl:"name:BstrStr" json:"string"`
}

SafeArrayUnion_String structure represents SAFEARRAYUNION RPC union arm.

It has following labels: 8

func (*SafeArrayUnion_String) MarshalNDR

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

func (*SafeArrayUnion_String) UnmarshalNDR

func (o *SafeArrayUnion_String) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayUnion_Unknown

type SafeArrayUnion_Unknown struct {
	Unknown *SafeArrayUnknown `idl:"name:UnknownStr" json:"unknown"`
}

SafeArrayUnion_Unknown structure represents SAFEARRAYUNION RPC union arm.

It has following labels: 13

func (*SafeArrayUnion_Unknown) MarshalNDR

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

func (*SafeArrayUnion_Unknown) UnmarshalNDR

func (o *SafeArrayUnion_Unknown) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayUnion_Variant

type SafeArrayUnion_Variant struct {
	Variant *SafeArrayVariant `idl:"name:VariantStr" json:"variant"`
}

SafeArrayUnion_Variant structure represents SAFEARRAYUNION RPC union arm.

It has following labels: 12

func (*SafeArrayUnion_Variant) MarshalNDR

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

func (*SafeArrayUnion_Variant) UnmarshalNDR

func (o *SafeArrayUnion_Variant) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayUnion_Word

type SafeArrayUnion_Word struct {
	Word *WordSizedArray `idl:"name:WordStr" json:"word"`
}

SafeArrayUnion_Word structure represents SAFEARRAYUNION RPC union arm.

It has following labels: 2

func (*SafeArrayUnion_Word) MarshalNDR

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

func (*SafeArrayUnion_Word) UnmarshalNDR

func (o *SafeArrayUnion_Word) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayUnknown

type SafeArrayUnknown struct {
	// Size:  MUST be set to the total number of elements in the array.
	Size uint32 `idl:"name:Size" json:"size"`
	// apUnknown:  MUST be an array of MInterfacePointer (see [MS-DCOM], section 2.2.1.10).
	// The iid field in the OBJREF MUST be IID_IUnknown (see section 1.9).
	//
	// The Size field of this type MUST be marshaled as specified in [C706] section 14,
	// with the exception that it MUST be marshaled by using a little-endian data representation,
	// regardless of the data representation format label. For more information, see [C706]
	// section 14.2.5.
	Unknown []*dcom.Unknown `idl:"name:apUnknown;size_is:(Size);pointer:ref" json:"unknown"`
}

SafeArrayUnknown structure represents SAFEARR_UNKNOWN RPC structure.

The SAFEARR_UNKNOWN structure specifies an array of MInterfacePointers elements (see [MS-DCOM] section 2.2.14) whose IPID is IID_IUnknown (see section 1.9).

func (*SafeArrayUnknown) MarshalNDR

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

func (*SafeArrayUnknown) UnmarshalNDR

func (o *SafeArrayUnknown) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SafeArrayVariant

type SafeArrayVariant struct {
	// Size:  MUST be set to the total number of elements in the array. MUST be nonzero.
	Size uint32 `idl:"name:Size" json:"size"`
	// aVariant:  MUST be an array of VARIANT types. For more information, see section 2.2.29.2.
	//
	// The Size field of this type MUST be marshaled as specified in [C706] section 14,
	// with the exception that it MUST be marshaled by using a little-endian data representation,
	// regardless of the data representation format label. For more information, see [C706]
	// section 14.2.5.
	Variant []*Variant `idl:"name:aVariant;size_is:(Size);pointer:ref" json:"variant"`
}

SafeArrayVariant structure represents SAFEARR_VARIANT RPC structure.

The SAFEARR_VARIANT structure specifies an array of VARIANT types.

func (*SafeArrayVariant) MarshalNDR

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

func (*SafeArrayVariant) UnmarshalNDR

func (o *SafeArrayVariant) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type String

type String FlaggedWordBlob

String structure represents _BSTR RPC structure.

func (*String) FlaggedWordBlob

func (o *String) FlaggedWordBlob() *FlaggedWordBlob

func (*String) MarshalNDR

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

func (*String) NDRSizeInfo

func (o *String) NDRSizeInfo() []uint64

func (*String) UnmarshalNDR

func (o *String) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SystemKind

type SystemKind uint32

SystemKind type represents SYSKIND RPC enumeration.

SYSKIND is used in the syskind field of a TLIBATTR to specify the system pointer size value, as specified in section 2.2.45.

The system pointer size constants are defined in the SYSKIND enumeration.

var (
	// SYS_WIN32:  MUST be set if the automation type library uses 32 bits for pointer-sized
	// values.
	SystemKindWin32 SystemKind = 1
	// SYS_WIN64:  MUST be set if the automation type library uses 64 bits for pointer-sized
	// values.
	SystemKindWin64 SystemKind = 3
)

func (SystemKind) String

func (o SystemKind) String() string

type TypeAttribute

type TypeAttribute struct {
	// guid:  MUST be set to the GUID that is associated with the type, or to IID_NULL,
	// if the type was not declared with the [uuid] attribute (see section 2.2.49.2).
	GUID *dtyp.GUID `idl:"name:guid" json:"guid"`
	// lcid:  MUST be set to the locale ID of the type's member names and documentation
	// strings (see section 2.2.49.2).
	LocaleID uint32 `idl:"name:lcid" json:"locale_id"`

	// cbSizeInstance:  MUST be set to a value that is specified by the value of typekind.
	//
	//	+-------------------+----------------------------------------------------------------------------------+
	//	|     VALUE OF      |                                     VALUE OF                                     |
	//	|     TYPEKIND      |                                  CBSIZEINSTANCE                                  |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_COCLASS     | MUST be set to the system pointer size (see section 3.7.1.2).                    |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_DISPATCH    | MUST be set to the system pointer size (see section 3.7.1.2).                    |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_INTERFACE   | MUST be set to the system pointer size (see section 3.7.1.2).                    |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_MODULE      | MUST be set to 2.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_ENUM        | MUST be set to an implementation-specific value<23> that specifies the size of   |
	//	|                   | an integer.                                                                      |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_UNION       | MUST be set to an implementation-specific value<24> that specifies the size of   |
	//	|                   | its largest element.                                                             |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_RECORD      | MUST be set to an implementation-specific value<25> that specifies the size in   |
	//	|                   | bytes, of the structure.                                                         |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_ALIAS       | MUST be set to an implementation-specific value<26> that specifies the size, in  |
	//	|                   | bytes, of the predefined type for which this type is an alias.                   |
	//	+-------------------+----------------------------------------------------------------------------------+
	LengthInstance uint32 `idl:"name:cbSizeInstance" json:"length_instance"`
	// typekind:  MUST be set to a value of the TYPEKIND enumeration, as specified in section
	// 2.2.17.
	TypeKind TypeKind `idl:"name:typekind" json:"type_kind"`
	// cFuncs:  MUST be set to a value specified by the value of typekind.
	//
	//	+-------------------+----------------------------------------------------------------------------------+
	//	|     VALUE OF      |                                     VALUE OF                                     |
	//	|     TYPEKIND      |                                      CFUNCS                                      |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_COCLASS     | MUST be set to 0.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_DISPATCH    | MUST be set to the number of elements in the dispatch method table, as specified |
	//	|                   | in section 3.7.1.2.                                                              |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_INTERFACE   | MUST be set to the number of elements in the method table, as specified in       |
	//	|                   | section 3.7.1.2.                                                                 |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_MODULE      | MUST be set to the number of elements in the method table, as specified in       |
	//	|                   | section 3.7.1.2.                                                                 |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_ENUM        | MUST be set to 0.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_UNION       | MUST be set to 0.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_RECORD      | MUST be set to 0.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_ALIAS       | MUST be set to 0.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	FuncsCount uint16 `idl:"name:cFuncs" json:"funcs_count"`
	// cVars:  MUST be set to the number of elements in the data member table, as specified
	// in section 3.7.1.2.
	VarsCount uint16 `idl:"name:cVars" json:"vars_count"`
	// cImplTypes:  MUST be set to the number of elements in the interface table, as specified
	// in section 3.7.1.2.
	ImplTypesCount uint16 `idl:"name:cImplTypes" json:"impl_types_count"`
	// cbSizeVft:  MUST be set to a value specified by the value of typekind.
	//
	//	+-------------------+----------------------------------------------------------------------------------+
	//	|     VALUE OF      |                                     VALUE OF                                     |
	//	|     TYPEKIND      |                                    CBSIZEVFT                                     |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_COCLASS     | MUST be set to 0.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_DISPATCH    | MUST be set to the system pointer size value (see section 2.2.45) multiplied by  |
	//	|                   | seven.                                                                           |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_INTERFACE   | MUST be set to the system pointer size value multiplied by the number of methods |
	//	|                   | that are defined by the interface and all its inherited interfaces.              |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_MODULE      | MUST be set to 0.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_ENUM        | MUST be set to 0.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_UNION       | MUST be set to 0.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_RECORD      | MUST be set to 0.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	//	| TKIND_ALIAS       | MUST be set to 0.                                                                |
	//	+-------------------+----------------------------------------------------------------------------------+
	LengthVFT uint16 `idl:"name:cbSizeVft" json:"length_vft"`
	// cbAlignment:  MUST be set to 0 or to an implementation-specific positive value.<27>
	AlignmentLength uint16 `idl:"name:cbAlignment" json:"alignment_length"`
	// wTypeFlags:  MUST be either a combination of the TYPEFLAGS bit flags that are specified
	// in section 2.2.16, or 0.
	TypeFlags uint16 `idl:"name:wTypeFlags" json:"type_flags"`
	// wMajorVerNum:  MUST be set to the major version number of the automation scope that
	// is associated with the ITypeLib server, as specified in section 2.2.49.2.
	MajorVerNum uint16 `idl:"name:wMajorVerNum" json:"major_ver_num"`
	// wMinorVerNum:  MUST be set to the minor version number of the automation scope that
	// is associated with the ITypeLib server, as specified in section 2.2.49.2.
	MinorVerNum uint16 `idl:"name:wMinorVerNum" json:"minor_ver_num"`
	// tdescAlias:  MUST contain a TYPEDESC (section 2.2.37) that describes the predefined
	// type for which this type is an alias, if typekind is set to TKIND_ALIAS. Otherwise,
	// MUST contain a TYPEDESC with the vt field set to VT_EMPTY.
	TypeDescAlias *TypeDesc `idl:"name:tdescAlias" json:"type_desc_alias"`
	// contains filtered or unexported fields
}

TypeAttribute structure represents TYPEATTR RPC structure.

The TYPEATTR structure is used by an ITypeInfo server to describe a type, as specified in section 3.7.4.1.

func (*TypeAttribute) MarshalNDR

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

func (*TypeAttribute) UnmarshalNDR

func (o *TypeAttribute) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TypeComp

type TypeComp dcom.InterfacePointer

TypeComp structure represents ITypeComp RPC structure.

func (*TypeComp) InterfacePointer

func (o *TypeComp) InterfacePointer() *dcom.InterfacePointer

func (*TypeComp) MarshalNDR

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

func (*TypeComp) NDRSizeInfo

func (o *TypeComp) NDRSizeInfo() []uint64

func (*TypeComp) UnmarshalNDR

func (o *TypeComp) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TypeDesc

type TypeDesc struct {
	// _tdUnion:  MUST contain an instance of the type, according to the VARENUM value provided
	// in the vt field.
	Union *TypeDesc_Union `idl:"name:_tdUnion;switch_is:vt" json:"union"`
	// vt:  MUST be set to one of the values that are specified as available to a TYPEDESC
	// and identified with a "T" in the Context column of the table in 2.2.7. MUST be set
	// to VT_PTR if the ELEMDESC is contained in a VARDESC that describes an appobject coclass,
	// as specified in section 2.2.49.8.
	VT uint16 `idl:"name:vt" json:"vt"`
}

TypeDesc structure represents TYPEDESC RPC structure.

The TYPEDESC structure is used in the ARRAYDESC, ELEMDESC, and TYPEATTR structures to identify and describe the type of a data member, the return type of a method, or the type of a method parameter.

func (*TypeDesc) MarshalNDR

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

func (*TypeDesc) UnmarshalNDR

func (o *TypeDesc) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TypeDesc_Union

type TypeDesc_Union struct {
	// Types that are assignable to Value
	//
	// *TypeDesc_Union_TypeDesc
	// *TypeDesc_Union_ArrayDesc
	// *TypeDesc_Union_HrefType
	// *TypeDesc_Union_DefaultTypeDesc
	Value is_TypeDesc_Union `json:"value"`
}

TypeDesc_Union structure represents TYPEDESC union anonymous member.

The TYPEDESC structure is used in the ARRAYDESC, ELEMDESC, and TYPEATTR structures to identify and describe the type of a data member, the return type of a method, or the type of a method parameter.

func (*TypeDesc_Union) GetValue

func (o *TypeDesc_Union) GetValue() any

func (*TypeDesc_Union) MarshalUnionNDR

func (o *TypeDesc_Union) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint16) error

func (*TypeDesc_Union) NDRSwitchValue

func (o *TypeDesc_Union) NDRSwitchValue(sw uint16) uint16

func (*TypeDesc_Union) UnmarshalUnionNDR

func (o *TypeDesc_Union) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint16) error

type TypeDesc_Union_ArrayDesc

type TypeDesc_Union_ArrayDesc struct {
	// lpadesc:   MUST refer to an ARRAYDESC that describes a fixed-length array.
	ArrayDesc *ArrayDesc `idl:"name:lpadesc" json:"array_desc"`
}

TypeDesc_Union_ArrayDesc structure represents TypeDesc_Union RPC union arm.

It has following labels: 28

func (*TypeDesc_Union_ArrayDesc) MarshalNDR

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

func (*TypeDesc_Union_ArrayDesc) UnmarshalNDR

func (o *TypeDesc_Union_ArrayDesc) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TypeDesc_Union_DefaultTypeDesc

type TypeDesc_Union_DefaultTypeDesc struct {
}

TypeDesc_Union_DefaultTypeDesc structure represents TypeDesc_Union RPC default union arm.

func (*TypeDesc_Union_DefaultTypeDesc) MarshalNDR

func (*TypeDesc_Union_DefaultTypeDesc) UnmarshalNDR

type TypeDesc_Union_HrefType

type TypeDesc_Union_HrefType struct {
	// hreftype:   MUST be set to an HREFTYPE that identifies the UDT (see section 2.2.28).
	HrefType uint32 `idl:"name:hreftype" json:"href_type"`
}

TypeDesc_Union_HrefType structure represents TypeDesc_Union RPC union arm.

It has following labels: 29

func (*TypeDesc_Union_HrefType) MarshalNDR

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

func (*TypeDesc_Union_HrefType) UnmarshalNDR

func (o *TypeDesc_Union_HrefType) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TypeDesc_Union_TypeDesc

type TypeDesc_Union_TypeDesc struct {
	// lptdesc:   MUST refer to a TYPEDESC that specifies the element type. If the ELEMDESC
	// is contained in a VARDESC that describes an appobject coclass, the TYPEDESC MUST
	// specify the type of the coclass.
	TypeDesc *TypeDesc `idl:"name:lptdesc" json:"type_desc"`
}

TypeDesc_Union_TypeDesc structure represents TypeDesc_Union RPC union arm.

It has following labels: 26, 27

func (*TypeDesc_Union_TypeDesc) MarshalNDR

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

func (*TypeDesc_Union_TypeDesc) UnmarshalNDR

func (o *TypeDesc_Union_TypeDesc) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TypeFlags

type TypeFlags uint16

TypeFlags type represents TYPEFLAGS RPC enumeration.

The TYPEFLAGS enumeration values are used in the wTypeFlags field of a TYPEATTR to specify the features of a type, as specified in section 2.2.44. They also are used in the pTypeFlags parameter of the ITypeInfo2::GetTypeFlags method.

The function invocation constants are defined in the TYPEFLAGS enumeration.

var (
	// TYPEFLAG_FAPPOBJECT:  MUST be set if the type was declared with the [appobject]
	// attribute (see section 2.2.49.8).
	TypeFlagsAppObject TypeFlags = 1
	// TYPEFLAG_FCANCREATE:  MUST NOT be set if the type was declared with the [noncreatable]
	// attribute (see section 2.2.49.8). Otherwise, MUST be set.
	TypeFlagsCanCreate TypeFlags = 2
	// TYPEFLAG_FLICENSED:  MUST be set if the type was declared with the [licensed] attribute
	// (see section 2.2.49.8).
	TypeFlagsLicensed TypeFlags = 4
	// TYPEFLAG_FPREDECLID:  MUST be set if the type was declared with the [predeclid]
	// or [appobject] attributes (see section 2.2.49.8).
	TypeFlagsPredeclID TypeFlags = 8
	// TYPEFLAG_FHIDDEN:  MUST be set if the type was declared with the [hidden] attribute
	// (see section 2.2.49.8).
	TypeFlagsHidden TypeFlags = 16
	// TYPEFLAG_FCONTROL:  MUST be set if the type was declared with the [control] attribute
	// (see section 2.2.49.8).
	TypeFlagsControl TypeFlags = 32
	// TYPEFLAG_FDUAL:  MUST be set if the type was declared with the [dual] attribute
	// (see section 2.2.49.4.2).
	TypeFlagsDual TypeFlags = 64
	// TYPEFLAG_FNONEXTENSIBLE:  MUST be set if the type was declared with the [nonextensible]
	// attribute (see section 2.2.49.4).
	TypeFlagsNonExtensible TypeFlags = 128
	// TYPEFLAG_FOLEAUTOMATION:  MUST be set if the type is a DCOM interface that was declared
	// with the [oleautomation] or [dual] attributes (see section 2.2.49.4). MUST NOT be
	// set if the type is a dispinterface.
	TypeFlagsOLEAutomation TypeFlags = 256
	// TYPEFLAG_FRESTRICTED:  MUST be set if the type was declared with the [restricted]
	// attribute (see section 2.2.49.5.1).
	TypeFlagsRestricted TypeFlags = 512
	// TYPEFLAG_FAGGREGATABLE:  MUST be set if the type was declared with the [aggregatable]
	// attribute (see section 2.2.49.8).
	TypeFlagsAggregatable TypeFlags = 1024
	// TYPEFLAG_FREPLACEABLE:  MUST be set if the type contains a member that was declared
	// with the [replaceable] attribute (see section 2.2.49.5.1). MUST be ignored on receipt.
	TypeFlagsReplaceable TypeFlags = 2048
	// TYPEFLAG_FDISPATCHABLE:  MUST be set if the type derives from IDispatch, either
	// directly or indirectly. MUST be set if the type is a dispinterface or dual interface
	// <3> (see section 2.2.49.4.2).
	TypeFlagsDispatchable TypeFlags = 4096
	// TYPEFLAG_FPROXY:  MUST be set if the type was declared with the [proxy] attribute
	// (see section 2.2.49.4). MUST be ignored on receipt.
	TypeFlagsProxy TypeFlags = 16384
)

func (TypeFlags) String

func (o TypeFlags) String() string

type TypeInfo

type TypeInfo dcom.InterfacePointer

TypeInfo structure represents ITypeInfo RPC structure.

func (*TypeInfo) InterfacePointer

func (o *TypeInfo) InterfacePointer() *dcom.InterfacePointer

func (*TypeInfo) MarshalNDR

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

func (*TypeInfo) NDRSizeInfo

func (o *TypeInfo) NDRSizeInfo() []uint64

func (*TypeInfo) UnmarshalNDR

func (o *TypeInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TypeInfo2

type TypeInfo2 dcom.InterfacePointer

TypeInfo2 structure represents ITypeInfo2 RPC structure.

func (*TypeInfo2) InterfacePointer

func (o *TypeInfo2) InterfacePointer() *dcom.InterfacePointer

func (*TypeInfo2) MarshalNDR

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

func (*TypeInfo2) NDRSizeInfo

func (o *TypeInfo2) NDRSizeInfo() []uint64

func (*TypeInfo2) UnmarshalNDR

func (o *TypeInfo2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TypeKind

type TypeKind uint32

TypeKind type represents TYPEKIND RPC enumeration.

The TYPEKIND enumeration values are used in the typekind field of a TYPEATTR to specify the features of a type, as specified in section 2.2.44. They are also used in the pTypeKind parameter of the ITypeInfo2::GetTypeKind method, as specified in section 3.9.4.1.

The type kind constants are defined in the TYPEKIND enumeration.

var (
	// TKIND_ENUM:  MUST be used if the type is an enumeration that was defined with the
	// typedef and enum keywords.
	TypeKindEnum TypeKind = 0
	// TKIND_RECORD:  MUST be used if the type is a structure that was defined with the
	// typedef and struct keywords.
	TypeKindRecord TypeKind = 1
	// TKIND_MODULE:  MUST be used if the type is a module that was defined with the module
	// keyword.
	TypeKindModule TypeKind = 2
	// TKIND_INTERFACE:  MUST be used if the type is a DCOM interface that was defined
	// with the interface keyword.
	TypeKindInterface TypeKind = 3
	// TKIND_DISPATCH:  MUST be used if the type is a dispinterface that was defined with
	// either the dispinterface keyword or the interface keyword with the [dual] attribute.
	TypeKindDispatch TypeKind = 4
	// TKIND_COCLASS:  MUST be used if the type is a COM server that was defined with the
	// coclass keyword.
	TypeKindCoclass TypeKind = 5
	// TKIND_ALIAS:  MUST be used if the type is an alias for a predefined type that was
	// defined with the typedef keyword and added to the automation scope by using the [public]
	// attribute as specified in section 2.2.49.3.
	TypeKindAlias TypeKind = 6
	// TKIND_UNION:  MUST be used if the type is a union that was defined with the typedef
	// and union keywords.
	TypeKindUnion TypeKind = 7
)

func (TypeKind) String

func (o TypeKind) String() string

type TypeLib

type TypeLib dcom.InterfacePointer

TypeLib structure represents ITypeLib RPC structure.

func (*TypeLib) InterfacePointer

func (o *TypeLib) InterfacePointer() *dcom.InterfacePointer

func (*TypeLib) MarshalNDR

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

func (*TypeLib) NDRSizeInfo

func (o *TypeLib) NDRSizeInfo() []uint64

func (*TypeLib) UnmarshalNDR

func (o *TypeLib) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TypeLib2

type TypeLib2 dcom.InterfacePointer

TypeLib2 structure represents ITypeLib2 RPC structure.

func (*TypeLib2) InterfacePointer

func (o *TypeLib2) InterfacePointer() *dcom.InterfacePointer

func (*TypeLib2) MarshalNDR

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

func (*TypeLib2) NDRSizeInfo

func (o *TypeLib2) NDRSizeInfo() []uint64

func (*TypeLib2) UnmarshalNDR

func (o *TypeLib2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TypeLibAttribute

type TypeLibAttribute struct {
	// guid:  MUST be set to the GUID of the automation scope that is associated with the
	// ITypeLib server, as specified in section 2.2.49.1.
	GUID *dtyp.GUID `idl:"name:guid" json:"guid"`
	// lcid:  MUST be set to the LCID of the automation scope that is associated with the
	// ITypeLib server, as specified in section 2.2.49.1.
	LocaleID uint32 `idl:"name:lcid" json:"locale_id"`
	// syskind:  MUST be set to a value of the SYSKIND enumeration, as specified in section
	// 2.2.21.
	//
	// The value of syskind specifies the system pointer-size value. If syskind is SYS_WIN32,
	// the system pointer-size value is 4. If syskind is SYS_WIN64, the system pointer-size
	// value is 8.
	SystemKind SystemKind `idl:"name:syskind" json:"system_kind"`
	// wMajorVerNum:  MUST be set to the major version number of the automation scope that
	// is associated with the ITypeLib server, as specified in section 2.2.49.2.
	MajorVerNum uint16 `idl:"name:wMajorVerNum" json:"major_ver_num"`
	// wMinorVerNum:  MUST be set to the minor version number of the automation scope that
	// is associated with the ITypeLib server, as specified in section 2.2.49.2.
	MinorVerNum uint16 `idl:"name:wMinorVerNum" json:"minor_ver_num"`
	// wLibFlags:  MUST be either a combination of the LIBFLAGS bit flags (as specified
	// in section 2.2.20) or 0.
	LibFlags uint16 `idl:"name:wLibFlags" json:"lib_flags"`
}

TypeLibAttribute structure represents TLIBATTR RPC structure.

The TLIBATTR structure is used to specify the attributes of an ITypeLib server, as specified in section 3.11.4.

func (*TypeLibAttribute) MarshalNDR

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

func (*TypeLibAttribute) UnmarshalNDR

func (o *TypeLibAttribute) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VarDesc

type VarDesc struct {
	// memid:  MUST be set to the MEMBERID (section 2.2.35) of the data member, the constant,
	// or the ODL dispinterface property. MUST be set to MEMBERID_DEFAULTINST if the VARDESC
	// describes an appobject coclass, as specified in section 2.2.49.8.
	MemberID int32 `idl:"name:memid" json:"member_id"`

	// _vdUnion:  MUST be set to an instance of the type, according to the value in the
	// varkind field.
	Union *VarDesc_Union `idl:"name:_vdUnion;switch_is:varkind" json:"union"`
	// elemdescVar:  MUST contain an ELEMDESC that describes the data member, constant,
	// or ODL dispinterface property and its type, as specified in section 2.2.41.
	ElemDescVar *ElemDesc `idl:"name:elemdescVar" json:"elem_desc_var"`
	// wVarFlags:  MUST be set to a combination of the VARFLAGS bit flags (as specified
	// in 2.2.18), or set to 0. MUST be set to 0 if the VARDESC describes an appobject coclass,
	// as specified in section 2.2.49.8.
	VarFlags uint16 `idl:"name:wVarFlags" json:"var_flags"`
	// varkind:  MUST be set to a value of the VARKIND enumeration. MUST be set to VAR_STATIC
	// if the VARDESC describes an appobject coclass, as specified in section 2.2.49.8.
	VarKind VarKind `idl:"name:varkind" json:"var_kind"`
	// contains filtered or unexported fields
}

VarDesc structure represents VARDESC RPC structure.

The VARDESC structure is used by an ITypeInfo server or ITypeComp server to describe a data member, constant, or ODL dispinterface property, as specified in sections 3.5.4.1 and 3.7.4.4.

func (*VarDesc) MarshalNDR

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

func (*VarDesc) UnmarshalNDR

func (o *VarDesc) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VarDesc_Union

type VarDesc_Union struct {
	// Types that are assignable to Value
	//
	// *VarDesc_Union_Instance
	// *VarDesc_Union_Value
	Value is_VarDesc_Union `json:"value"`
}

VarDesc_Union structure represents VARDESC union anonymous member.

The VARDESC structure is used by an ITypeInfo server or ITypeComp server to describe a data member, constant, or ODL dispinterface property, as specified in sections 3.5.4.1 and 3.7.4.4.

func (*VarDesc_Union) GetValue

func (o *VarDesc_Union) GetValue() any

func (*VarDesc_Union) MarshalUnionNDR

func (o *VarDesc_Union) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*VarDesc_Union) NDRSwitchValue

func (o *VarDesc_Union) NDRSwitchValue(sw uint32) uint32

func (*VarDesc_Union) UnmarshalUnionNDR

func (o *VarDesc_Union) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type VarDesc_Union_Instance

type VarDesc_Union_Instance struct {
	// oInst:
	//
	// * VAR_PERINSTANCE: MUST be set to an implementation-specific value <22> ( ae19ad63-7433-4568-88e9-f70e5593547d#Appendix_A_22
	// )
	//
	// * VAR_DISPATCH: MUST be set to 0.
	//
	// * VAR_STATIC: MUST be set to 0.
	Instance uint32 `idl:"name:oInst" json:"instance"`
}

VarDesc_Union_Instance structure represents VarDesc_Union RPC union arm.

It has following labels: 0, 3, 1

func (*VarDesc_Union_Instance) MarshalNDR

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

func (*VarDesc_Union_Instance) UnmarshalNDR

func (o *VarDesc_Union_Instance) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VarDesc_Union_Value

type VarDesc_Union_Value struct {
	Value *Variant `idl:"name:lpvarValue" json:"value"`
}

VarDesc_Union_Value structure represents VarDesc_Union RPC union arm.

It has following labels: 2

func (*VarDesc_Union_Value) MarshalNDR

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

func (*VarDesc_Union_Value) UnmarshalNDR

func (o *VarDesc_Union_Value) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type VarEnum

type VarEnum uint16

VarEnum type represents VARENUM RPC enumeration.

The VARENUM enumeration constants are used in the discriminant field, vt, of the VARIANT type specified in section 2.2.29.2. When present, the VT_BYREF flag MUST be in an OR relation with another value to specify the byref argument for the VARIANT. The VT_EMPTY and VT_NULL values MUST NOT be specified with the VT_BYREF bit flag.

The following values are also used in the discriminant field, vt, of the TYPEDESC structure specified in section 2.2.37.

The meaning of each VARIANT type constant is specified as follows. The Context column specifies the context in which each constant is used. A constant MUST NOT be used in a VARIANT unless it is specified with a "V". A constant MUST NOT be used in a SAFEARRAY unless it is specified with an "S". A constant MUST NOT be used in a TYPEDESC unless it is specified with a "T".

var (
	// VT_EMPTY:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V       | The type of the contained field is undefined. When this flag is specified, the   |
	//	|         | VARIANT MUST NOT contain a data field. The VARIANT definition is specified in    |
	//	|         | section 2.2.29.2.                                                                |
	//	+---------+----------------------------------------------------------------------------------+
	VarEmpty VarEnum = 0
	// VT_NULL:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V       | The type of the contained field is NULL. When this flag is specified, the        |
	//	|         | VARIANT MUST NOT contain a data field. The VARIANT definition is specified in    |
	//	|         | section 2.2.29.2.                                                                |
	//	+---------+----------------------------------------------------------------------------------+
	VarNull VarEnum = 1
	// VT_I2:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | a 2-byte signed integer.                                                         |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumI2 VarEnum = 2
	// VT_I4:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | a 4-byte signed integer.                                                         |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumI4 VarEnum = 3
	// VT_R4:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | a 4-byte IEEE floating-point number.                                             |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumR4 VarEnum = 4
	// VT_R8:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | an 8-byte IEEE floating-point number.                                            |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumR8 VarEnum = 5
	// VT_CY:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | CURRENCY (see section 2.2.24).                                                   |
	//	+---------+----------------------------------------------------------------------------------+
	VarCurrency VarEnum = 6
	// VT_DATE:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | DATE (see section 2.2.25).                                                       |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumDate VarEnum = 7
	// VT_BSTR:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | BSTR (see section 2.2.23).                                                       |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumString VarEnum = 8
	// VT_DISPATCH:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | a pointer to IDispatch (see section 3.1.4).                                      |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumDispatch VarEnum = 9
	// VT_ERROR:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | HRESULT.                                                                         |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumError VarEnum = 10
	// VT_BOOL:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | VARIANT_BOOL (see section 2.2.27).                                               |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumBool VarEnum = 11
	// VT_VARIANT:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | VARIANT (see section 2.2.29). It MUST appear with the bit flag VT_BYREF.         |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumVariant VarEnum = 12
	// VT_UNKNOWN:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | a pointer to IUnknown.                                                           |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumUnknown VarEnum = 13
	// VT_DECIMAL:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | DECIMAL (see section 2.2.26).                                                    |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumDecimal VarEnum = 14
	// VT_I1:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | a 1-byte integer.                                                                |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumI1 VarEnum = 16
	// VT_UI1:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | a 1-byte unsigned integer.                                                       |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumUI1 VarEnum = 17
	// VT_UI2:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | a 2-byte unsigned integer.                                                       |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumUI2 VarEnum = 18
	// VT_UI4:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | a 4-byte unsigned integer.                                                       |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumUI4 VarEnum = 19
	// VT_I8:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | an 8-byte signed integer.                                                        |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumI8 VarEnum = 20
	// VT_UI8:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | an 8-byte unsigned integer.                                                      |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumUI8 VarEnum = 21
	// VT_INT:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | a 4-byte signed integer.                                                         |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumInt VarEnum = 22
	// VT_UINT:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S, T | Either the specified type, or the type of the element or contained field MUST be |
	//	|         | a 4-byte unsigned integer.                                                       |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumUint VarEnum = 23
	// VT_VOID:
	//
	//	+---------+----------------------------------+
	//	|         |                                  |
	//	| CONTEXT |           DESCRIPTION            |
	//	|         |                                  |
	//	+---------+----------------------------------+
	//	+---------+----------------------------------+
	//	| T       | The specified type MUST be void. |
	//	+---------+----------------------------------+
	VarEnumVoid VarEnum = 24
	// VT_HRESULT:
	//
	//	+---------+-------------------------------------+
	//	|         |                                     |
	//	| CONTEXT |             DESCRIPTION             |
	//	|         |                                     |
	//	+---------+-------------------------------------+
	//	+---------+-------------------------------------+
	//	| T       | The specified type MUST be HRESULT. |
	//	+---------+-------------------------------------+
	VarEnumHResult VarEnum = 25
	// VT_PTR:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| T       | The specified type MUST be a unique pointer, as specified in [C706] section      |
	//	|         | 4.2.20.2.                                                                        |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumPointer VarEnum = 26
	// VT_SAFEARRAY:
	//
	//	+---------+--------------------------------------------------------+
	//	|         |                                                        |
	//	| CONTEXT |                      DESCRIPTION                       |
	//	|         |                                                        |
	//	+---------+--------------------------------------------------------+
	//	+---------+--------------------------------------------------------+
	//	| T       | The specified type MUST be SAFEARRAY (section 2.2.30). |
	//	+---------+--------------------------------------------------------+
	VarEnumSafeArray VarEnum = 27
	// VT_CARRAY:
	//
	//	+---------+------------------------------------------------+
	//	|         |                                                |
	//	| CONTEXT |                  DESCRIPTION                   |
	//	|         |                                                |
	//	+---------+------------------------------------------------+
	//	+---------+------------------------------------------------+
	//	| T       | The specified type MUST be a fixed-size array. |
	//	+---------+------------------------------------------------+
	VarEnumCarray VarEnum = 28
	// VT_USERDEFINED:
	//
	//	+---------+------------------------------------------+
	//	|         |                                          |
	//	| CONTEXT |               DESCRIPTION                |
	//	|         |                                          |
	//	+---------+------------------------------------------+
	//	+---------+------------------------------------------+
	//	| T       | The specified type MUST be user defined. |
	//	+---------+------------------------------------------+
	VarEnumUserdefined VarEnum = 29
	// VT_LPSTR:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| T       | The specified type MUST be a NULL-terminated string, as specified in [C706]      |
	//	|         | section 14.3.4.                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	VarCharString VarEnum = 30
	// VT_LPWSTR:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| T       | The specified type MUST be a zero-terminated string of UNICODE characters, as    |
	//	|         | specified in [C706], section 14.3.4.                                             |
	//	+---------+----------------------------------------------------------------------------------+
	VarUnicodeString VarEnum = 31
	// VT_RECORD:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S    | The type of the element or contained field MUST be a BRECORD (see section        |
	//	|         | 2.2.28.2).                                                                       |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumRecord VarEnum = 36
	// VT_INT_PTR:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| T       | The specified type MUST be either a 4-byte or an 8-byte signed integer. The      |
	//	|         | size of the integer is platform specific and determines the system pointer size  |
	//	|         | value, as specified in section 2.2.21.                                           |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumIntPointer VarEnum = 37
	// VT_UINT_PTR:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| T       | The specified type MUST be either a 4 byte or an 8 byte unsigned integer. The    |
	//	|         | size of the integer is platform specific and determines the system pointer size  |
	//	|         | value, as specified in section 2.2.21.                                           |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumUintPointer VarEnum = 38
	// VT_ARRAY:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S    | The type of the element or contained field MUST be a SAFEARRAY (see section      |
	//	|         | 2.2.30.10).                                                                      |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumArray VarEnum = 8192
	// VT_BYREF:
	//
	//	+---------+----------------------------------------------------------------------------------+
	//	|         |                                                                                  |
	//	| CONTEXT |                                   DESCRIPTION                                    |
	//	|         |                                                                                  |
	//	+---------+----------------------------------------------------------------------------------+
	//	+---------+----------------------------------------------------------------------------------+
	//	| V, S    | The type of the element or contained field MUST be a pointer to one of the types |
	//	|         | listed in the previous rows of this table. If present, this bit flag MUST appear |
	//	|         | in a VARIANT discriminant (see section 2.2.28) with one of the previous flags.   |
	//	+---------+----------------------------------------------------------------------------------+
	VarEnumByref VarEnum = 16384
)

func (VarEnum) String

func (o VarEnum) String() string

type VarFlags

type VarFlags uint16

VarFlags type represents VARFLAGS RPC enumeration.

The VARFLAGS enumeration values are used in the wVarFlags field of a VARDESC to specify the features of a field, constant, or ODL dispinterface property, as specified in section 2.2.43.

The variable feature constants are defined in the VARFLAGS enumeration.

var (
	// VARFLAG_FREADONLY:  MUST be set if the variable is an ODL dispinterface property
	// that was declared with the [readonly] attribute (see section 2.2.49.5.3).
	VarFlagsReadOnly VarFlags = 1
	// VARFLAG_FSOURCE:  MUST be set if the variable is a property member of an ODL interface
	// that was declared with the [source] attribute (see section 2.2.49.8).
	VarFlagsSource VarFlags = 2
	// VARFLAG_FBINDABLE:  MUST be set if the variable is an ODL dispinterface property
	// that was declared with the [bindable] attribute (see section 2.2.49.5.2).
	VarFlagsBindable VarFlags = 4
	// VARFLAG_FREQUESTEDIT:  MUST be set if the variable is an ODL dispinterface property
	// that was declared with the [requestedit] attribute (see section 2.2.49.5.2).
	VarFlagsRequestEdit VarFlags = 8
	// VARFLAG_FDISPLAYBIND:  MUST be set if the variable is an ODL dispinterface property
	// that was declared with the [displaybind] attribute (see section 2.2.49.5.2).
	VarFlagsDisplayBind VarFlags = 16
	// VARFLAG_FDEFAULTBIND:  MUST be set if the variable is an ODL dispinterface property
	// that was declared with the [defaultbind] attribute (see section 2.2.49.5.2).
	VarFlagsDefaultBind VarFlags = 32
	// VARFLAG_FHIDDEN:  MUST be set if the variable is a member of a type that was declared
	// with the [hidden] attribute (see section 2.2.49.5.1).
	VarFlagsHidden VarFlags = 64
	// VARFLAG_FRESTRICTED:  MUST be set if the variable is a member of a type that was
	// declared with the [restricted] attribute (see section 2.2.49.5.1).
	VarFlagsRestricted VarFlags = 128
	// VARFLAG_FDEFAULTCOLLELEM:  MUST be set if the variable is an ODL dispinterface property
	// that was declared with the [defaultcollelem] attribute (see section 2.2.49.5.1).
	VarFlagsDefaultCollElem VarFlags = 256
	// VARFLAG_FUIDEFAULT:  MUST be set if the variable is an ODL dispinterface property
	// that was declared with the [uidefault] attribute (see section 2.2.49.5.1).
	VarFlagsUIDefault VarFlags = 512
	// VARFLAG_FNONBROWSABLE:  MUST be set if the variable is an ODL dispinterface property
	// that was declared with the [nonbrowsable] attribute (see section 2.2.49.5.1).
	VarFlagsNonBrowsable VarFlags = 1024
	// VARFLAG_FREPLACEABLE:  MUST be set if the variable is an ODL dispinterface property
	// that was declared with the [replaceable] attribute (see section 2.2.49.5.1). MUST
	// be ignored on receipt.
	VarFlagsReplaceable VarFlags = 2048
	// VARFLAG_FIMMEDIATEBIND:  MUST be set if the variable is an ODL dispinterface property
	// that was declared with the [immediatebind] attribute (see section 2.2.49.5.2).
	VarFlagsImmediateBind VarFlags = 4096
)

func (VarFlags) String

func (o VarFlags) String() string

type VarKind

type VarKind uint32

VarKind type represents VARKIND RPC enumeration.

The VARKIND enumeration values are used in the varkind field of a VARDESC to specify the kind of element that is described by the VARDESC, as specified in section 2.2.43.

The variable kind constants are defined in the VARKIND enumeration:

var (
	// VAR_PERINSTANCE:  MUST be used if the VARDESC describes a member of a structure
	// or union.
	VarKindPerinstance VarKind = 0
	// VAR_STATIC:  MUST be used if the VARDESC describes an appobject coclass (see section
	// 2.2.49.8).
	VarKindStatic VarKind = 1
	// VAR_CONST:  MUST be used if the VARDESC describes a member of a module or enumeration.
	VarKindConst VarKind = 2
	// VAR_DISPATCH:  MUST be used if the VARDESC describes an ODL dispinterface property
	// (see section 2.2.49.5.3).
	VarKindDispatch VarKind = 3
)

func (VarKind) String

func (o VarKind) String() string

type Variant

type Variant struct {
	Size uint32 `idl:"name:clSize" json:"size"`

	VT uint16 `idl:"name:vt" json:"vt"`

	VarUnion *Variant_VarUnion `idl:"name:_varUnion;switch_is:vt" json:"var_union"`
	// contains filtered or unexported fields
}

Variant structure represents _VARIANT RPC structure.

func (*Variant) MarshalNDR

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

func (*Variant) UnmarshalNDR

func (o *Variant) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion

type Variant_VarUnion struct {
	// Types that are assignable to Value
	//
	// *Variant_VarUnion_LongLongValue
	// *Variant_VarUnion_Long
	// *Variant_VarUnion_Byte
	// *Variant_VarUnion_Short
	// *Variant_VarUnion_Float
	// *Variant_VarUnion_Double
	// *Variant_VarUnion_Bool
	// *Variant_VarUnion_HResult
	// *Variant_VarUnion_Currency
	// *Variant_VarUnion_Date
	// *Variant_VarUnion_BSTR
	// *Variant_VarUnion_IUnknown
	// *Variant_VarUnion_IDispatch
	// *Variant_VarUnion_SafeArray
	// *Variant_VarUnion_Brecord
	// *Variant_VarUnion_BytePtr
	// *Variant_VarUnion_ShortPtr
	// *Variant_VarUnion_LongPtr
	// *Variant_VarUnion_LongLongPtr
	// *Variant_VarUnion_FloatPtr
	// *Variant_VarUnion_DoublePtr
	// *Variant_VarUnion_BoolPtr
	// *Variant_VarUnion_HResultPtr
	// *Variant_VarUnion_CurrencyPtr
	// *Variant_VarUnion_DatePtr
	// *Variant_VarUnion_BSTRPtr
	// *Variant_VarUnion_IUnknownPtr
	// *Variant_VarUnion_IDispatchPtr
	// *Variant_VarUnion_SafeArrayPtr
	// *Variant_VarUnion_VariantPtr
	// *Variant_VarUnion_Char
	// *Variant_VarUnion_Ushort
	// *Variant_VarUnion_Ulong
	// *Variant_VarUnion_UlongLong
	// *Variant_VarUnion_Int
	// *Variant_VarUnion_Uint
	// *Variant_VarUnion_Decimal
	// *Variant_VarUnion_CharPtr
	// *Variant_VarUnion_UshortPtr
	// *Variant_VarUnion_UlongPtr
	// *Variant_VarUnion_UlongLongPtr
	// *Variant_VarUnion_IntPtr
	// *Variant_VarUnion_UintPtr
	// *Variant_VarUnion_DecimalPtr
	// *Variant_VarUnion_0
	// *Variant_VarUnion_1
	Value is_Variant_VarUnion `json:"value"`
}

Variant_VarUnion structure represents _VARIANT union anonymous member.

func (*Variant_VarUnion) GetValue

func (o *Variant_VarUnion) GetValue() any

func (*Variant_VarUnion) MarshalUnionNDR

func (o *Variant_VarUnion) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*Variant_VarUnion) NDRSwitchValue

func (o *Variant_VarUnion) NDRSwitchValue(sw uint32) uint32

func (*Variant_VarUnion) UnmarshalUnionNDR

func (o *Variant_VarUnion) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type Variant_VarUnion_0

type Variant_VarUnion_0 struct {
}

Variant_VarUnion_0 structure represents Variant_VarUnion RPC union arm.

It has following labels: 0

func (*Variant_VarUnion_0) MarshalNDR

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

func (*Variant_VarUnion_0) UnmarshalNDR

func (o *Variant_VarUnion_0) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_1

type Variant_VarUnion_1 struct {
}

Variant_VarUnion_1 structure represents Variant_VarUnion RPC union arm.

It has following labels: 1

func (*Variant_VarUnion_1) MarshalNDR

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

func (*Variant_VarUnion_1) UnmarshalNDR

func (o *Variant_VarUnion_1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_BSTR

type Variant_VarUnion_BSTR struct {
	BSTR *String `idl:"name:bstrVal" json:"bstr"`
}

Variant_VarUnion_BSTR structure represents Variant_VarUnion RPC union arm.

It has following labels: 8

func (*Variant_VarUnion_BSTR) MarshalNDR

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

func (*Variant_VarUnion_BSTR) UnmarshalNDR

func (o *Variant_VarUnion_BSTR) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_BSTRPtr

type Variant_VarUnion_BSTRPtr struct {
	BSTRPtr *String `idl:"name:pbstrVal" json:"bstr_ptr"`
}

Variant_VarUnion_BSTRPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16392

func (*Variant_VarUnion_BSTRPtr) MarshalNDR

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

func (*Variant_VarUnion_BSTRPtr) UnmarshalNDR

func (o *Variant_VarUnion_BSTRPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Bool

type Variant_VarUnion_Bool struct {
	Bool int16 `idl:"name:boolVal" json:"bool"`
}

Variant_VarUnion_Bool structure represents Variant_VarUnion RPC union arm.

It has following labels: 11

func (*Variant_VarUnion_Bool) MarshalNDR

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

func (*Variant_VarUnion_Bool) UnmarshalNDR

func (o *Variant_VarUnion_Bool) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_BoolPtr

type Variant_VarUnion_BoolPtr struct {
	BoolPtr int16 `idl:"name:pboolVal" json:"bool_ptr"`
}

Variant_VarUnion_BoolPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16395

func (*Variant_VarUnion_BoolPtr) MarshalNDR

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

func (*Variant_VarUnion_BoolPtr) UnmarshalNDR

func (o *Variant_VarUnion_BoolPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Brecord

type Variant_VarUnion_Brecord struct {
	Brecord *Record `idl:"name:brecVal" json:"brecord"`
}

Variant_VarUnion_Brecord structure represents Variant_VarUnion RPC union arm.

It has following labels: 36, 16420

func (*Variant_VarUnion_Brecord) MarshalNDR

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

func (*Variant_VarUnion_Brecord) UnmarshalNDR

func (o *Variant_VarUnion_Brecord) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Byte

type Variant_VarUnion_Byte struct {
	Byte uint8 `idl:"name:bVal" json:"byte"`
}

Variant_VarUnion_Byte structure represents Variant_VarUnion RPC union arm.

It has following labels: 17

func (*Variant_VarUnion_Byte) MarshalNDR

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

func (*Variant_VarUnion_Byte) UnmarshalNDR

func (o *Variant_VarUnion_Byte) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_BytePtr

type Variant_VarUnion_BytePtr struct {
	BytePtr uint8 `idl:"name:pbVal" json:"byte_ptr"`
}

Variant_VarUnion_BytePtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16401

func (*Variant_VarUnion_BytePtr) MarshalNDR

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

func (*Variant_VarUnion_BytePtr) UnmarshalNDR

func (o *Variant_VarUnion_BytePtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Char

type Variant_VarUnion_Char struct {
	Char uint8 `idl:"name:cVal" json:"char"`
}

Variant_VarUnion_Char structure represents Variant_VarUnion RPC union arm.

It has following labels: 16

func (*Variant_VarUnion_Char) MarshalNDR

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

func (*Variant_VarUnion_Char) UnmarshalNDR

func (o *Variant_VarUnion_Char) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_CharPtr

type Variant_VarUnion_CharPtr struct {
	CharPtr string `idl:"name:pcVal" json:"char_ptr"`
}

Variant_VarUnion_CharPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16400

func (*Variant_VarUnion_CharPtr) MarshalNDR

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

func (*Variant_VarUnion_CharPtr) UnmarshalNDR

func (o *Variant_VarUnion_CharPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Currency

type Variant_VarUnion_Currency struct {
	Currency *Currency `idl:"name:cyVal" json:"currency"`
}

Variant_VarUnion_Currency structure represents Variant_VarUnion RPC union arm.

It has following labels: 6

func (*Variant_VarUnion_Currency) MarshalNDR

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

func (*Variant_VarUnion_Currency) UnmarshalNDR

func (o *Variant_VarUnion_Currency) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_CurrencyPtr

type Variant_VarUnion_CurrencyPtr struct {
	CurrencyPtr *Currency `idl:"name:pcyVal" json:"currency_ptr"`
}

Variant_VarUnion_CurrencyPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16390

func (*Variant_VarUnion_CurrencyPtr) MarshalNDR

func (*Variant_VarUnion_CurrencyPtr) UnmarshalNDR

func (o *Variant_VarUnion_CurrencyPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Date

type Variant_VarUnion_Date struct {
	Date float64 `idl:"name:date" json:"date"`
}

Variant_VarUnion_Date structure represents Variant_VarUnion RPC union arm.

It has following labels: 7

func (*Variant_VarUnion_Date) MarshalNDR

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

func (*Variant_VarUnion_Date) UnmarshalNDR

func (o *Variant_VarUnion_Date) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_DatePtr

type Variant_VarUnion_DatePtr struct {
	DatePtr float64 `idl:"name:pdate" json:"date_ptr"`
}

Variant_VarUnion_DatePtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16391

func (*Variant_VarUnion_DatePtr) MarshalNDR

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

func (*Variant_VarUnion_DatePtr) UnmarshalNDR

func (o *Variant_VarUnion_DatePtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Decimal

type Variant_VarUnion_Decimal struct {
	Decimal *Decimal `idl:"name:decVal" json:"decimal"`
}

Variant_VarUnion_Decimal structure represents Variant_VarUnion RPC union arm.

It has following labels: 14

func (*Variant_VarUnion_Decimal) MarshalNDR

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

func (*Variant_VarUnion_Decimal) UnmarshalNDR

func (o *Variant_VarUnion_Decimal) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_DecimalPtr

type Variant_VarUnion_DecimalPtr struct {
	DecimalPtr *Decimal `idl:"name:pdecVal" json:"decimal_ptr"`
}

Variant_VarUnion_DecimalPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16398

func (*Variant_VarUnion_DecimalPtr) MarshalNDR

func (*Variant_VarUnion_DecimalPtr) UnmarshalNDR

func (o *Variant_VarUnion_DecimalPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Double

type Variant_VarUnion_Double struct {
	Double float64 `idl:"name:dblVal" json:"double"`
}

Variant_VarUnion_Double structure represents Variant_VarUnion RPC union arm.

It has following labels: 5

func (*Variant_VarUnion_Double) MarshalNDR

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

func (*Variant_VarUnion_Double) UnmarshalNDR

func (o *Variant_VarUnion_Double) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_DoublePtr

type Variant_VarUnion_DoublePtr struct {
	DoublePtr float64 `idl:"name:pdblVal" json:"double_ptr"`
}

Variant_VarUnion_DoublePtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16389

func (*Variant_VarUnion_DoublePtr) MarshalNDR

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

func (*Variant_VarUnion_DoublePtr) UnmarshalNDR

func (o *Variant_VarUnion_DoublePtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Float

type Variant_VarUnion_Float struct {
	Float float32 `idl:"name:fltVal" json:"float"`
}

Variant_VarUnion_Float structure represents Variant_VarUnion RPC union arm.

It has following labels: 4

func (*Variant_VarUnion_Float) MarshalNDR

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

func (*Variant_VarUnion_Float) UnmarshalNDR

func (o *Variant_VarUnion_Float) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_FloatPtr

type Variant_VarUnion_FloatPtr struct {
	FloatPtr float32 `idl:"name:pfltVal" json:"float_ptr"`
}

Variant_VarUnion_FloatPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16388

func (*Variant_VarUnion_FloatPtr) MarshalNDR

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

func (*Variant_VarUnion_FloatPtr) UnmarshalNDR

func (o *Variant_VarUnion_FloatPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_HResult

type Variant_VarUnion_HResult struct {
	HResult int32 `idl:"name:scode" json:"h_result"`
}

Variant_VarUnion_HResult structure represents Variant_VarUnion RPC union arm.

It has following labels: 10

func (*Variant_VarUnion_HResult) MarshalNDR

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

func (*Variant_VarUnion_HResult) UnmarshalNDR

func (o *Variant_VarUnion_HResult) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_HResultPtr

type Variant_VarUnion_HResultPtr struct {
	HResultPtr int32 `idl:"name:pscode" json:"hresult_ptr"`
}

Variant_VarUnion_HResultPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16394

func (*Variant_VarUnion_HResultPtr) MarshalNDR

func (*Variant_VarUnion_HResultPtr) UnmarshalNDR

func (o *Variant_VarUnion_HResultPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_IDispatch

type Variant_VarUnion_IDispatch struct {
	IDispatch *Dispatch `idl:"name:pdispVal" json:"idispatch"`
}

Variant_VarUnion_IDispatch structure represents Variant_VarUnion RPC union arm.

It has following labels: 9

func (*Variant_VarUnion_IDispatch) MarshalNDR

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

func (*Variant_VarUnion_IDispatch) UnmarshalNDR

func (o *Variant_VarUnion_IDispatch) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_IDispatchPtr

type Variant_VarUnion_IDispatchPtr struct {
	IDispatchPtr *Dispatch `idl:"name:ppdispVal" json:"idispatch_ptr"`
}

Variant_VarUnion_IDispatchPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16393

func (*Variant_VarUnion_IDispatchPtr) MarshalNDR

func (*Variant_VarUnion_IDispatchPtr) UnmarshalNDR

func (o *Variant_VarUnion_IDispatchPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_IUnknown

type Variant_VarUnion_IUnknown struct {
	IUnknown *dcom.Unknown `idl:"name:punkVal" json:"iunknown"`
}

Variant_VarUnion_IUnknown structure represents Variant_VarUnion RPC union arm.

It has following labels: 13

func (*Variant_VarUnion_IUnknown) MarshalNDR

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

func (*Variant_VarUnion_IUnknown) UnmarshalNDR

func (o *Variant_VarUnion_IUnknown) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_IUnknownPtr

type Variant_VarUnion_IUnknownPtr struct {
	IUnknownPtr *dcom.Unknown `idl:"name:ppunkVal" json:"iunknown_ptr"`
}

Variant_VarUnion_IUnknownPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16397

func (*Variant_VarUnion_IUnknownPtr) MarshalNDR

func (*Variant_VarUnion_IUnknownPtr) UnmarshalNDR

func (o *Variant_VarUnion_IUnknownPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Int

type Variant_VarUnion_Int struct {
	Int int32 `idl:"name:intVal" json:"int"`
}

Variant_VarUnion_Int structure represents Variant_VarUnion RPC union arm.

It has following labels: 22

func (*Variant_VarUnion_Int) MarshalNDR

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

func (*Variant_VarUnion_Int) UnmarshalNDR

func (o *Variant_VarUnion_Int) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_IntPtr

type Variant_VarUnion_IntPtr struct {
	IntPtr int32 `idl:"name:pintVal" json:"int_ptr"`
}

Variant_VarUnion_IntPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16406

func (*Variant_VarUnion_IntPtr) MarshalNDR

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

func (*Variant_VarUnion_IntPtr) UnmarshalNDR

func (o *Variant_VarUnion_IntPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Long

type Variant_VarUnion_Long struct {
	Long int32 `idl:"name:lVal" json:"long"`
}

Variant_VarUnion_Long structure represents Variant_VarUnion RPC union arm.

It has following labels: 3

func (*Variant_VarUnion_Long) MarshalNDR

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

func (*Variant_VarUnion_Long) UnmarshalNDR

func (o *Variant_VarUnion_Long) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_LongLongPtr

type Variant_VarUnion_LongLongPtr struct {
	LongLongPtr int64 `idl:"name:pllVal" json:"long_long_ptr"`
}

Variant_VarUnion_LongLongPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16404

func (*Variant_VarUnion_LongLongPtr) MarshalNDR

func (*Variant_VarUnion_LongLongPtr) UnmarshalNDR

func (o *Variant_VarUnion_LongLongPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_LongLongValue

type Variant_VarUnion_LongLongValue struct {
	LongLongValue int64 `idl:"name:llVal" json:"long_long_value"`
}

Variant_VarUnion_LongLongValue structure represents Variant_VarUnion RPC union arm.

It has following labels: 20

func (*Variant_VarUnion_LongLongValue) MarshalNDR

func (*Variant_VarUnion_LongLongValue) UnmarshalNDR

type Variant_VarUnion_LongPtr

type Variant_VarUnion_LongPtr struct {
	LongPtr int32 `idl:"name:plVal" json:"long_ptr"`
}

Variant_VarUnion_LongPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16387

func (*Variant_VarUnion_LongPtr) MarshalNDR

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

func (*Variant_VarUnion_LongPtr) UnmarshalNDR

func (o *Variant_VarUnion_LongPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_SafeArray

type Variant_VarUnion_SafeArray struct {
	SafeArray *SafeArray `idl:"name:parray" json:"safe_array"`
}

Variant_VarUnion_SafeArray structure represents Variant_VarUnion RPC union arm.

It has following labels: 8192

func (*Variant_VarUnion_SafeArray) MarshalNDR

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

func (*Variant_VarUnion_SafeArray) UnmarshalNDR

func (o *Variant_VarUnion_SafeArray) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_SafeArrayPtr

type Variant_VarUnion_SafeArrayPtr struct {
	SafeArrayPtr *SafeArray `idl:"name:pparray" json:"safe_array_ptr"`
}

Variant_VarUnion_SafeArrayPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 24576

func (*Variant_VarUnion_SafeArrayPtr) MarshalNDR

func (*Variant_VarUnion_SafeArrayPtr) UnmarshalNDR

func (o *Variant_VarUnion_SafeArrayPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Short

type Variant_VarUnion_Short struct {
	Short int16 `idl:"name:iVal" json:"short"`
}

Variant_VarUnion_Short structure represents Variant_VarUnion RPC union arm.

It has following labels: 2

func (*Variant_VarUnion_Short) MarshalNDR

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

func (*Variant_VarUnion_Short) UnmarshalNDR

func (o *Variant_VarUnion_Short) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_ShortPtr

type Variant_VarUnion_ShortPtr struct {
	ShortPtr int16 `idl:"name:piVal" json:"short_ptr"`
}

Variant_VarUnion_ShortPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16386

func (*Variant_VarUnion_ShortPtr) MarshalNDR

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

func (*Variant_VarUnion_ShortPtr) UnmarshalNDR

func (o *Variant_VarUnion_ShortPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Uint

type Variant_VarUnion_Uint struct {
	Uint uint32 `idl:"name:uintVal" json:"uint"`
}

Variant_VarUnion_Uint structure represents Variant_VarUnion RPC union arm.

It has following labels: 23

func (*Variant_VarUnion_Uint) MarshalNDR

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

func (*Variant_VarUnion_Uint) UnmarshalNDR

func (o *Variant_VarUnion_Uint) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_UintPtr

type Variant_VarUnion_UintPtr struct {
	UintPtr uint32 `idl:"name:puintVal" json:"uint_ptr"`
}

Variant_VarUnion_UintPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16407

func (*Variant_VarUnion_UintPtr) MarshalNDR

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

func (*Variant_VarUnion_UintPtr) UnmarshalNDR

func (o *Variant_VarUnion_UintPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Ulong

type Variant_VarUnion_Ulong struct {
	Ulong uint32 `idl:"name:ulVal" json:"ulong"`
}

Variant_VarUnion_Ulong structure represents Variant_VarUnion RPC union arm.

It has following labels: 19

func (*Variant_VarUnion_Ulong) MarshalNDR

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

func (*Variant_VarUnion_Ulong) UnmarshalNDR

func (o *Variant_VarUnion_Ulong) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_UlongLong

type Variant_VarUnion_UlongLong struct {
	UlongLong uint64 `idl:"name:ullVal" json:"ulong_long"`
}

Variant_VarUnion_UlongLong structure represents Variant_VarUnion RPC union arm.

It has following labels: 21

func (*Variant_VarUnion_UlongLong) MarshalNDR

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

func (*Variant_VarUnion_UlongLong) UnmarshalNDR

func (o *Variant_VarUnion_UlongLong) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_UlongLongPtr

type Variant_VarUnion_UlongLongPtr struct {
	UlongLongPtr uint64 `idl:"name:pullVal" json:"ulong_long_ptr"`
}

Variant_VarUnion_UlongLongPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16405

func (*Variant_VarUnion_UlongLongPtr) MarshalNDR

func (*Variant_VarUnion_UlongLongPtr) UnmarshalNDR

func (o *Variant_VarUnion_UlongLongPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_UlongPtr

type Variant_VarUnion_UlongPtr struct {
	UlongPtr uint32 `idl:"name:pulVal" json:"ulong_ptr"`
}

Variant_VarUnion_UlongPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16403

func (*Variant_VarUnion_UlongPtr) MarshalNDR

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

func (*Variant_VarUnion_UlongPtr) UnmarshalNDR

func (o *Variant_VarUnion_UlongPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_Ushort

type Variant_VarUnion_Ushort struct {
	Ushort uint16 `idl:"name:uiVal" json:"ushort"`
}

Variant_VarUnion_Ushort structure represents Variant_VarUnion RPC union arm.

It has following labels: 18

func (*Variant_VarUnion_Ushort) MarshalNDR

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

func (*Variant_VarUnion_Ushort) UnmarshalNDR

func (o *Variant_VarUnion_Ushort) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_UshortPtr

type Variant_VarUnion_UshortPtr struct {
	UshortPtr uint16 `idl:"name:puiVal" json:"ushort_ptr"`
}

Variant_VarUnion_UshortPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16402

func (*Variant_VarUnion_UshortPtr) MarshalNDR

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

func (*Variant_VarUnion_UshortPtr) UnmarshalNDR

func (o *Variant_VarUnion_UshortPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Variant_VarUnion_VariantPtr

type Variant_VarUnion_VariantPtr struct {
	VariantPtr *Variant `idl:"name:pvarVal" json:"variant_ptr"`
}

Variant_VarUnion_VariantPtr structure represents Variant_VarUnion RPC union arm.

It has following labels: 16396

func (*Variant_VarUnion_VariantPtr) MarshalNDR

func (*Variant_VarUnion_VariantPtr) UnmarshalNDR

func (o *Variant_VarUnion_VariantPtr) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type WordSizedArray

type WordSizedArray struct {
	// clSize:  MUST be set to the total number of elements in the array. This MUST be nonzero.
	Size uint32 `idl:"name:clSize" json:"size"`
	// pData:  MUST be an array of WORD elements.
	//
	// Data of this type MUST be marshaled as specified in [C706] section 14, with the exception
	// that it MUST be marshaled by using a little-endian data representation, regardless
	// of the data representation format label. For more information, see [C706] section
	// 14.2.5.
	Data []uint16 `idl:"name:pData;size_is:(clSize)" json:"data"`
}

WordSizedArray structure represents WORD_SIZEDARR RPC structure.

The WORD_SIZEDARR structure defines an array of unsigned 16-bit integers.

func (*WordSizedArray) MarshalNDR

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

func (*WordSizedArray) UnmarshalNDR

func (o *WordSizedArray) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

Directories

Path Synopsis
idispatch
v0
ienumvariant
v0
itypecomp
v0
itypeinfo
v0
itypeinfo2
v0
itypelib
v0
itypelib2
v0

Jump to

Keyboard shortcuts

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