Search in sources :

Example 1 with TypeInfoUtil

use of com.sun.jna.platform.win32.COM.TypeInfoUtil in project jna by java-native-access.

the class TypeLibUtilTest method testGetTypeInfo.

public void testGetTypeInfo() {
    TypeLibUtil shellTypeLib = loadShellTypeLib();
    int typeInfoCount = shellTypeLib.getTypeInfoCount();
    for (int i = 0; i < typeInfoCount; i++) {
        ITypeInfo typeInfo = shellTypeLib.getTypeInfo(i);
        TypeInfoUtil typeInfoUtil = new TypeInfoUtil(typeInfo);
        TYPEATTR typeAttr = typeInfoUtil.getTypeAttr();
        int cFuncs = typeAttr.cFuncs.intValue();
        for (int y = 0; y < cFuncs; y++) {
            // Get the function description
            FUNCDESC funcDesc = typeInfoUtil.getFuncDesc(y);
            // Get the member ID
            MEMBERID memberID = funcDesc.memid;
            // Get the name of the method
            TypeInfoDoc typeInfoDoc2 = typeInfoUtil.getDocumentation(memberID);
            String methodName = typeInfoDoc2.getName();
            assertNotNull(methodName);
            typeInfoUtil.ReleaseFuncDesc(funcDesc);
        }
        typeInfoUtil.ReleaseTypeAttr(typeAttr);
    }
}
Also used : MEMBERID(com.sun.jna.platform.win32.OaIdl.MEMBERID) TypeInfoDoc(com.sun.jna.platform.win32.COM.TypeInfoUtil.TypeInfoDoc) TYPEATTR(com.sun.jna.platform.win32.OaIdl.TYPEATTR) FUNCDESC(com.sun.jna.platform.win32.OaIdl.FUNCDESC)

Example 2 with TypeInfoUtil

use of com.sun.jna.platform.win32.COM.TypeInfoUtil in project jna by java-native-access.

the class TlbCoClass method createFunctions.

protected void createFunctions(TypeInfoUtil typeInfoUtil, String bindingMode) {
    TYPEATTR typeAttr = typeInfoUtil.getTypeAttr();
    int cFuncs = typeAttr.cFuncs.intValue();
    for (int i = 0; i < cFuncs; i++) {
        // Get the function description
        FUNCDESC funcDesc = typeInfoUtil.getFuncDesc(i);
        TlbAbstractMethod method = null;
        if (funcDesc.invkind.value == INVOKEKIND.INVOKE_FUNC.value) {
            if (this.isVTableMode()) {
                method = new TlbFunctionVTable(i, index, typeLibUtil, funcDesc, typeInfoUtil);
            } else {
                method = new TlbFunctionDispId(i, index, typeLibUtil, funcDesc, typeInfoUtil);
            }
        } else if (funcDesc.invkind.value == INVOKEKIND.INVOKE_PROPERTYGET.value) {
            method = new TlbPropertyGet(i, index, typeLibUtil, funcDesc, typeInfoUtil);
        } else if (funcDesc.invkind.value == INVOKEKIND.INVOKE_PROPERTYPUT.value) {
            method = new TlbPropertyPut(i, index, typeLibUtil, funcDesc, typeInfoUtil);
        } else if (funcDesc.invkind.value == INVOKEKIND.INVOKE_PROPERTYPUTREF.value) {
            method = new TlbPropertyPut(i, index, typeLibUtil, funcDesc, typeInfoUtil);
        }
        if (!isReservedMethod(method.getMethodName())) {
            this.content += method.getClassBuffer();
            if (i < cFuncs - 1)
                this.content += CR;
        }
        // Release our function description stuff
        typeInfoUtil.ReleaseFuncDesc(funcDesc);
    }
}
Also used : TYPEATTR(com.sun.jna.platform.win32.OaIdl.TYPEATTR) FUNCDESC(com.sun.jna.platform.win32.OaIdl.FUNCDESC)

Example 3 with TypeInfoUtil

use of com.sun.jna.platform.win32.COM.TypeInfoUtil in project jna by java-native-access.

the class TlbAbstractMethod method getUserdefinedType.

protected String getUserdefinedType(HREFTYPE hreftype) {
    ITypeInfo refTypeInfo = this.typeInfoUtil.getRefTypeInfo(hreftype);
    TypeInfoUtil typeInfoUtil = new TypeInfoUtil(refTypeInfo);
    TypeInfoDoc documentation = typeInfoUtil.getDocumentation(OaIdl.MEMBERID_NIL);
    return documentation.getName();
}
Also used : TypeInfoUtil(com.sun.jna.platform.win32.COM.TypeInfoUtil) TypeInfoDoc(com.sun.jna.platform.win32.COM.TypeInfoUtil.TypeInfoDoc) ITypeInfo(com.sun.jna.platform.win32.COM.ITypeInfo)

Aggregations

TypeInfoDoc (com.sun.jna.platform.win32.COM.TypeInfoUtil.TypeInfoDoc)2 FUNCDESC (com.sun.jna.platform.win32.OaIdl.FUNCDESC)2 TYPEATTR (com.sun.jna.platform.win32.OaIdl.TYPEATTR)2 ITypeInfo (com.sun.jna.platform.win32.COM.ITypeInfo)1 TypeInfoUtil (com.sun.jna.platform.win32.COM.TypeInfoUtil)1 MEMBERID (com.sun.jna.platform.win32.OaIdl.MEMBERID)1