コード例 #1
0
        internal ActCtxComInterfaceRedirection(GuidSectionEntry <ACTIVATION_CONTEXT_DATA_COM_INTERFACE_REDIRECTION> entry, ReadHandle handle, int base_offset)
        {
            Iid = entry.Key;
            var ent = entry.Entry;

            ProxyStubClsid32 = ent.ProxyStubClsid32;
            NumMethods       = ent.NumMethods;
            TypeLibraryId    = ent.TypeLibraryId;
            BaseInterface    = ent.BaseInterface;
            Name             = handle.ReadString(entry.Offset + ent.NameOffset, ent.NameLength);
        }
コード例 #2
0
        internal ActCtxComTypeLibraryRedirection(GuidSectionEntry <ACTIVATION_CONTEXT_DATA_COM_TYPE_LIBRARY_REDIRECTION> entry, ReadHandle handle, int base_offset)
        {
            TypeLibraryId = entry.Key;
            var ent = entry.Entry;

            Name         = handle.ReadString(base_offset + ent.NameOffset, ent.NameLength);
            HelpDir      = handle.ReadString(entry.Offset + ent.HelpDirOffset, ent.HelpDirLength);
            LibraryFlags = (System.Runtime.InteropServices.ComTypes.LIBFLAGS)ent.LibraryFlags;
            ResourceId   = ent.ResourceId;
            Version      = new Version(ent.MajorVersion, ent.MinorVersion);
            if (!string.IsNullOrWhiteSpace(entry.RosterEntry.FullPath))
            {
                FullPath = Path.Combine(entry.RosterEntry.FullPath, Name);
            }
            else
            {
                FullPath = Name;
            }
        }
コード例 #3
0
 internal ActCtxComServerRedirection(GuidSectionEntry <ACTIVATION_CONTEXT_DATA_COM_SERVER_REDIRECTION> entry, ReadHandle handle, int base_offset, int struct_offset)
 {
     Clsid            = entry.Key;
     ReferenceClsid   = entry.Entry.ReferenceClsid;
     ConfiguredClsid  = entry.Entry.ConfiguredClsid;
     ImplementedClsid = entry.Entry.ImplementedClsid;
     TypeLibraryId    = entry.Entry.TypeLibraryId;
     Module           = handle.ReadString(base_offset + entry.Entry.ModuleOffset, entry.Entry.ModuleLength);
     ProgId           = handle.ReadString(struct_offset + entry.Entry.ProgIdOffset, entry.Entry.ProgIdLength);
     ThreadingModel   = FromActCtxThreadingModel(entry.Entry.ThreadingModel);
     if (!string.IsNullOrWhiteSpace(entry.RosterEntry.FullPath))
     {
         FullPath = Path.Combine(entry.RosterEntry.FullPath, Module);
     }
     else
     {
         FullPath = Module;
     }
 }