/* Copyright (c) 2012 Tobias Wolf, All Rights Reserved
*
* The contents of this file is dual-licensed under 2
* alternative Open Source/Free licenses: LGPL 2.1 or later and
* Apache License 2.0. (starting with JNA version 4.0.0).
*
* You can freely decide which license you want to apply to
* the project.
*
* You may obtain a copy of the LGPL License at:
*
* http://www.gnu.org/licenses/licenses.html
*
* A copy is also included in the downloadable source code package
* containing JNA, in file "LGPL2.1".
*
* You may obtain a copy of the Apache License at:
*
* http://www.apache.org/licenses/
*
* A copy is also included in the downloadable source code package
* containing JNA, in file "AL2.0".
*/
package com.sun.jna.platform.win32.COM;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
import com.sun.jna.platform.win32.Guid.REFIID;
import com.sun.jna.platform.win32.OaIdl.EXCEPINFO;
import com.sun.jna.platform.win32.OaIdl.FUNCDESC;
import com.sun.jna.platform.win32.OaIdl.HREFTYPE;
import com.sun.jna.platform.win32.OaIdl.HREFTYPEByReference;
import com.sun.jna.platform.win32.OaIdl.INVOKEKIND;
import com.sun.jna.platform.win32.OaIdl.MEMBERID;
import com.sun.jna.platform.win32.OaIdl.TYPEATTR;
import com.sun.jna.platform.win32.OaIdl.VARDESC;
import com.sun.jna.platform.win32.OleAuto.DISPPARAMS;
import com.sun.jna.platform.win32.Variant.VARIANT;
import com.sun.jna.platform.win32.WTypes.BSTR;
import com.sun.jna.platform.win32.WTypes.BSTRByReference;
import com.sun.jna.platform.win32.WTypes.LPOLESTR;
import com.sun.jna.platform.win32.WinDef.DWORDByReference;
import com.sun.jna.platform.win32.WinDef.PVOID;
import com.sun.jna.platform.win32.WinDef.UINT;
import com.sun.jna.platform.win32.WinDef.UINTByReference;
import com.sun.jna.platform.win32.WinDef.WORD;
import com.sun.jna.platform.win32.WinDef.WORDByReference;
import com.sun.jna.platform.win32.WinNT.HRESULT;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.PointerByReference;
// TODO: Auto-generated Javadoc
/**
* Wrapper class for the ITypeInfo interface.
*
* @author Tobias Wolf, wolf.tobias@gmx.net
*/
public class TypeInfo extends Unknown implements ITypeInfo {
public static class ByReference extends TypeInfo implements
Structure.ByReference {
}
/**
* Instantiates a new i type info.
*/
public TypeInfo() {
}
/**
* Instantiates a new i type info.
*
* @param pvInstance
* the pv instance
*/
public TypeInfo(Pointer pvInstance) {
super(pvInstance);
}
/**
* Gets the type attr.
*
* @param ppTypeAttr
* the pp type attr
* @return the hresult
*/
public HRESULT GetTypeAttr(
/* [out] */PointerByReference ppTypeAttr) {
return (HRESULT) this._invokeNativeObject(3,
new Object[] { this.getPointer(), ppTypeAttr }, HRESULT.class);
}
/**
* Gets the type comp.
*
* @param ppTComp
* the pp t comp
* @return the hresult
*/
public HRESULT GetTypeComp(
/* [out] */PointerByReference ppTComp) {
return (HRESULT) this._invokeNativeObject(4,
new Object[] { this.getPointer(), ppTComp }, HRESULT.class);
}
/**
* Gets the func desc.
*
* @param index
* the index
* @param ppFuncDesc
* the pp func desc
* @return the hresult
*/
public/* [local] */HRESULT GetFuncDesc(
/* [in] */UINT index,
/* [out] */PointerByReference ppFuncDesc) {
return (HRESULT) this._invokeNativeObject(5,
new Object[] { this.getPointer(), index, ppFuncDesc },
HRESULT.class);
}
/**
* Gets the var desc.
*
* @param index
* the index
* @param ppVarDesc
* the pp var desc
* @return the hresult
*/
public/* [local] */HRESULT GetVarDesc(
/* [in] */UINT index,
/* [out] */PointerByReference ppVarDesc) {
return (HRESULT) this._invokeNativeObject(6,
new Object[] { this.getPointer(), index, ppVarDesc },
HRESULT.class);
}
/**
* Gets the names.
*
* @param memid
* the memid
* @param rgBstrNames
* the rg bstr names
* @param cMaxNames
* the c max names
* @param pcNames
* the pc names
* @return the hresult
*/
public/* [local] */HRESULT GetNames(
/* [in] */MEMBERID memid,
/* [length_is][size_is][out] */BSTR[] rgBstrNames,
/* [in] */UINT cMaxNames,
/* [out] */UINTByReference pcNames) {
return (HRESULT) this._invokeNativeObject(7,
new Object[] { this.getPointer(), memid, rgBstrNames,
cMaxNames, pcNames }, HRESULT.class);
}
/**
* Gets the ref type of impl type.
*
* @param index
* the index
* @param pRefType
* the ref type
* @return the hresult
*/
public HRESULT GetRefTypeOfImplType(
/* [in] */UINT index,
/* [out] */HREFTYPEByReference pRefType) {
return (HRESULT) this._invokeNativeObject(8,
new Object[] { this.getPointer(), index, pRefType },
HRESULT.class);
}
/**
* Gets the impl type flags.
*
* @param index
* the index
* @param pImplTypeFlags
* the impl type flags
* @return the hresult
*/
public HRESULT GetImplTypeFlags(
/* [in] */UINT index,
/* [out] */IntByReference pImplTypeFlags) {
return (HRESULT) this._invokeNativeObject(9,
new Object[] { this.getPointer(), index, pImplTypeFlags },
HRESULT.class);
}
/**
* Gets the i ds of names.
*
* @param rgszNames
* the rgsz names
* @param cNames
* the c names
* @param pMemId
* the mem id
* @return the hresult
*/
public/* [local] */HRESULT GetIDsOfNames(
/* [size_is][in] */LPOLESTR[] rgszNames,
/* [in] */UINT cNames,
/* [size_is][out] */MEMBERID[] pMemId) {
return (HRESULT) this._invokeNativeObject(10,
new Object[] { this.getPointer(), rgszNames, cNames, pMemId },
HRESULT.class);
}
/**
* Invoke.
*
* @param pvInstance
* the pv instance
* @param memid
* the memid
* @param wFlags
* the w flags
* @param pDispParams
* the disp params
* @param pVarResult
* the var result
* @param pExcepInfo
* the excep info
* @param puArgErr
* the pu arg err
* @return the hresult
*/
public/* [local] */HRESULT Invoke(
/* [in] */PVOID pvInstance,
/* [in] */MEMBERID memid,
/* [in] */WORD wFlags,
/* [out][in] */DISPPARAMS.ByReference pDispParams,
/* [out] */VARIANT.ByReference pVarResult,
/* [out] */EXCEPINFO.ByReference pExcepInfo,
/* [out] */UINTByReference puArgErr) {
return (HRESULT) this._invokeNativeObject(11,
new Object[] { this.getPointer(), pvInstance, memid, wFlags,
pDispParams, pVarResult, pExcepInfo, puArgErr },
HRESULT.class);
}
/**
* Gets the documentation.
*
* @param memid
* the memid
* @param pBstrName
* the bstr name
* @param pBstrDocString
* the bstr doc string
* @param pdwHelpContext
* the pdw help context
* @param pBstrHelpFile
* the bstr help file
* @return the hresult
*/
public/* [local] */HRESULT GetDocumentation(
/* [in] */MEMBERID memid,
/* [out] */BSTRByReference pBstrName,
/* [out] */BSTRByReference pBstrDocString,
/* [out] */DWORDByReference pdwHelpContext,
/* [out] */BSTRByReference pBstrHelpFile) {
return (HRESULT) this._invokeNativeObject(12,
new Object[] { this.getPointer(), memid, pBstrName,
pBstrDocString, pdwHelpContext, pBstrHelpFile },
HRESULT.class);
}
/**
* Gets the dll entry.
*
* @param memid
* the memid
* @param invKind
* the inv kind
* @param pBstrDllName
* the bstr dll name
* @param pBstrName
* the bstr name
* @param pwOrdinal
* the pw ordinal
* @return the hresult
*/
public/* [local] */HRESULT GetDllEntry(
/* [in] */MEMBERID memid,
/* [in] */INVOKEKIND invKind,
/* [out] */BSTRByReference pBstrDllName,
/* [out] */BSTRByReference pBstrName,
/* [out] */WORDByReference pwOrdinal) {
return (HRESULT) this._invokeNativeObject(13,
new Object[] { this.getPointer(), memid, invKind, pBstrDllName,
pBstrName, pwOrdinal }, HRESULT.class);
}
/**
* Gets the ref type info.
*
* @param hRefType
* the h ref type
* @param ppTInfo
* the pp t info
* @return the hresult
*/
public HRESULT GetRefTypeInfo(
/* [in] */HREFTYPE hRefType,
/* [out] */PointerByReference ppTInfo) {
return (HRESULT) this._invokeNativeObject(14,
new Object[] { this.getPointer(), hRefType, ppTInfo },
HRESULT.class);
}
/**
* Address of member.
*
* @param memid
* the memid
* @param invKind
* the inv kind
* @param ppv
* the ppv
* @return the hresult
*/
public/* [local] */HRESULT AddressOfMember(
/* [in] */MEMBERID memid,
/* [in] */INVOKEKIND invKind,
/* [out] */PointerByReference ppv) {
return (HRESULT) this._invokeNativeObject(15,
new Object[] { this.getPointer(), memid, invKind, ppv },
HRESULT.class);
}
/**
* Creates the instance.
*
* @param pUnkOuter
* the unk outer
* @param riid
* the riid
* @param ppvObj
* the ppv obj
* @return the hresult
*/
public/* [local] */HRESULT CreateInstance(
/* [in] */IUnknown pUnkOuter,
/* [in] */REFIID riid,
/* [iid_is][out] */PointerByReference ppvObj) {
return (HRESULT) this._invokeNativeObject(16,
new Object[] { this.getPointer(), pUnkOuter, riid, ppvObj },
HRESULT.class);
}
/**
* Gets the mops.
*
* @param memid
* the memid
* @param pBstrMops
* the bstr mops
* @return the hresult
*/
public HRESULT GetMops(
/* [in] */MEMBERID memid,
/* [out] */BSTRByReference pBstrMops) {
return (HRESULT) this._invokeNativeObject(17,
new Object[] { this.getPointer(), memid, pBstrMops },
HRESULT.class);
}
/**
* Gets the containing type lib.
*
* @param ppTLib
* the pp t lib
* @param pIndex
* the index
* @return the hresult
*/
public/* [local] */HRESULT GetContainingTypeLib(
/* [out] */PointerByReference ppTLib,
/* [out] */UINTByReference pIndex) {
return (HRESULT) this._invokeNativeObject(18,
new Object[] { this.getPointer(), ppTLib, pIndex },
HRESULT.class);
}
/**
* Release type attr.
*
* @param pTypeAttr
* the type attr
*/
public/* [local] */void ReleaseTypeAttr(
/* [in] */TYPEATTR pTypeAttr) {
this._invokeNativeVoid(19, new Object[] { this.getPointer(), pTypeAttr });
}
/**
* Release func desc.
*
* @param pFuncDesc
* the func desc
*/
public/* [local] */void ReleaseFuncDesc(
/* [in] */FUNCDESC pFuncDesc) {
this._invokeNativeVoid(20, new Object[] { this.getPointer(), pFuncDesc });
}
/**
* Release var desc.
*
* @param pVarDesc
* the var desc
*/
public/* [local] */void ReleaseVarDesc(
/* [in] */VARDESC pVarDesc) {
this._invokeNativeVoid(21, new Object[] { this.getPointer(), pVarDesc });
}
}