001 /*
002 * To change this template, choose Tools | Templates
003 * and open the template in the editor.
004 */
005
006 package org.bridj.cpp.com;
007
008 import org.bridj.FlagSet;
009 import org.bridj.IntValuedEnum;
010 import org.bridj.ValuedEnum;
011 import org.bridj.Pointer;
012 import org.bridj.StructObject;
013 import org.bridj.ann.Field;
014 import org.bridj.ann.Virtual;
015 import java.util.Collections;
016 import java.util.Iterator;
017
018 /**
019 *
020 * @author Olivier
021 */
022 @IID("00020400-0000-0000-C000-000000000046")
023 public class IDispatch extends IUnknown {
024 public static class DISPPARAMS extends StructObject {
025 @Field(0)
026 public native Pointer<VARIANT> rgvarg();
027 @Field(1)
028 public native Pointer<Integer> rgdispidNamedArgs();
029 @Field(2)
030 public native int cArgs();
031 @Field(3)
032 public native int cNamedArgs();
033 }
034
035
036 public static class EXCEPINFO extends StructObject {
037 @Field(0)
038 public native short wCode();
039 @Field(1)
040 public native short wReserved();
041 @Field(2)
042 public native Pointer<Character> bstrSource();
043 @Field(3)
044 public native Pointer<Character> bstrDescription();
045 @Field(4)
046 public native Pointer<Character> bstrHelpFile();
047 @Field(5)
048 public native int dwHelpContext();
049 @Field(6)
050 public native Pointer<?> pvReserved();
051 @Field(7)
052 public native Pointer<?> pfnDeferredFillIn();//HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);
053 @Field(8)
054 public native int scode();
055 }
056 @Virtual(0)
057 public native int GetTypeInfoCount(Pointer<Integer> pctinfo);
058
059 @Virtual(1)
060 public native int GetTypeInfo(int iTInfo, int lcid, Pointer<Pointer<ITypeInfo>> ppTInfo);
061
062 @Virtual(2)
063 public native int GetIDsOfNames(
064 Pointer riid,//REFIID riid,
065 Pointer<Pointer<Character>> rgszNames,
066 int cNames,
067 int lcid, //LCID lcid,
068 Pointer<Integer> rgDispId); //DISPID *rgDispId);
069
070 @Virtual(3)
071 public native int Invoke(
072 int dispIdMember,
073 Pointer<Byte> riid,
074 int lcid,
075 short wFlags,
076 Pointer<DISPPARAMS> pDispParams,
077 Pointer<VARIANT> pVarResult,
078 Pointer<EXCEPINFO> pExcepInfo,
079 Pointer<Integer> puArgErr
080 );
081 }