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); }
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; } }
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; } }