Exemple #1
0
            public iRegistryWrapper(iRegistry inst)
            {
                instance = inst;
                var unknown = (IUnknown)inst;

                vTable.AddRef           = unknown.AddRef;
                vTable.Release          = unknown.Release;
                vTable.QueryInterface   = unknown.QueryInterface;
                vTable.Load             = inst.Load;
                vTable.Unload           = inst.Unload;
                vTable.Install          = inst.Install;
                vTable.Remove           = inst.Remove;
                vTable.GetClassInstance = inst.GetClassInstance;
                vTable.Exists           = inst.Exists;
                vTable.Create           = inst.Create;
                vTable.ClassInstall     = inst.ClassInstall;
                vTable.ClassRemove      = inst.ClassRemove;
                vTable.GetClasses       = inst.GetClasses;
                vTable.InstanceInstall  = inst.InstanceInstall;
                vTable.InstanceRemove   = inst.InstanceRemove;
                vTable.GetInstance      = inst.GetInstance;
                genericObject.VTablePtr = Marshal.AllocHGlobal(Marshal.SizeOf(vTable));
                unmanagedInstance       = Marshal.AllocHGlobal(Marshal.SizeOf(genericObject));
                Marshal.StructureToPtr(vTable, genericObject.VTablePtr, false);
                Marshal.StructureToPtr(genericObject, unmanagedInstance, false);
            }
Exemple #2
0
 public UInt32 CreateInstance(iRegistry registry, GOMiUnknown outer, GOMiUnknown outInstance)
 {
     return(vTable.CreateInstance(unmanagedInstance, registry, outer, outInstance));
 }