xpmgr/BuildTools/Include/imapi2fs.idl

1222 lines
42 KiB
Plaintext

// FileSystemImaging.idl : IDL source for the FileSystemImaging family of interfaces
//
// This file will be processed by the MIDL tool to
// produce the type library (FileSystemImaging.tlb) and marshalling code.
import "oaidl.idl";
import "ocidl.idl";
import "imapi2.idl";
cpp_quote("#define IMAPI2FS_BOOT_ENTRY_COUNT_MAX 32")
[
v1_enum, public,
helpstring("File system item type")
]
typedef enum FsiItemType {
FsiItemNotFound = 0,
FsiItemDirectory = 1,
FsiItemFile = 2,
} FsiItemType;
[
v1_enum, public,
helpstring("Type of file system")
]
typedef enum FsiFileSystems {
FsiFileSystemNone = 0,
FsiFileSystemISO9660 = 1,
FsiFileSystemJoliet = 2,
FsiFileSystemUDF = 4,
FsiFileSystemUnknown = 0x40000000,
} FsiFileSystems;
[
v1_enum, public,
helpstring("Boot emulation type")
]
typedef enum EmulationType {
EmulationNone = 0,
Emulation12MFloppy = 1,
Emulation144MFloppy = 2,
Emulation288MFloppy = 3,
EmulationHardDisk = 4,
} EmulationType;
[
v1_enum, public,
helpstring("Boot platform type")
]
typedef enum PlatformId {
PlatformX86 = 0,
PlatformPowerPC = 1,
PlatformMac = 2,
PlatformEFI = 0xEF,
} PlatformId;
[
object, pointer_default(unique),
dual, nonextensible, oleautomation,
uuid(2C941FD4-975B-59BE-A960-9A2A262853A5),
helpstring("Boot options")
]
interface IBootOptions : IDispatch
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(1),
helpstring("Get boot image data stream")
]
HRESULT BootImage([out,retval] IStream **pVal );
[ //////////////////////////////////////////////////////////////////////////
propget, id(2),
helpstring("Get boot manufacturer")
]
HRESULT Manufacturer([out,retval] BSTR *pVal );
[ //////////////////////////////////////////////////////////////////////////
propput, id(2),
helpstring("Put boot manufacturer")
]
HRESULT Manufacturer([in] BSTR newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(3),
helpstring("Get boot platform identifier")
]
HRESULT PlatformId([out,retval] PlatformId *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(3),
helpstring("Put boot platform identifier")
]
HRESULT PlatformId([in] PlatformId newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(4),
helpstring("Get boot emulation type")
]
HRESULT Emulation([out,retval] EmulationType *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(4),
helpstring("Put boot emulation type")
]
HRESULT Emulation([in] EmulationType newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(5),
helpstring("Get boot image size")
]
HRESULT ImageSize([out,retval] ULONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
id(20),
helpstring("Set the boot image data stream, emulation type, and image size")
]
HRESULT AssignBootImage([in] IStream *newVal);
};
[
object, pointer_default(unique),
dual, nonextensible, oleautomation,
uuid(2C941FD5-975B-59BE-A960-9A2A262853A5),
helpstring("FileSystemImageResult progress item")
]
interface IProgressItem : IDispatch
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(1),
helpstring("Progress item description")
]
HRESULT Description([out,retval] BSTR *desc );
[ //////////////////////////////////////////////////////////////////////////
propget, id(2),
helpstring("First block in the range of blocks used by the progress item")
]
HRESULT FirstBlock([out,retval] ULONG *block);
[ //////////////////////////////////////////////////////////////////////////
propget, id(3),
helpstring("Last block in the range of blocks used by the progress item")
]
HRESULT LastBlock([out,retval] ULONG *block);
[ //////////////////////////////////////////////////////////////////////////
propget, id(4),
helpstring("Number of blocks used by the progress item")
]
HRESULT BlockCount([out,retval] ULONG *blocks);
};
[
object, pointer_default(unique),
uuid(2C941FD6-975B-59BE-A960-9A2A262853A5),
helpstring("FileSystemImageResult progress item enumerator")
]
interface IEnumProgressItems : IUnknown
{
[ //////////////////////////////////////////////////////////////////////////
local,
helpstring("Get next items in the enumeration")
]
HRESULT Next([in] ULONG celt, [out,size_is(celt)] IProgressItem **rgelt , [out] ULONG *pceltFetched);
[ //////////////////////////////////////////////////////////////////////////
call_as(Next),
helpstring("Remoting support for Next (allow NULL pointer for item count when requesting single item)")
]
HRESULT RemoteNext([in,range(1,0x7FFFFFFF)] ULONG celt, [out,size_is(celt)] IProgressItem **rgelt , [out] ULONG *pceltFetched);
[ //////////////////////////////////////////////////////////////////////////
helpstring("Skip items in the enumeration")
]
HRESULT Skip([in] ULONG celt);
[ //////////////////////////////////////////////////////////////////////////
helpstring("Reset the enumerator")
]
HRESULT Reset();
[ //////////////////////////////////////////////////////////////////////////
helpstring("Make a copy of the enumerator")
]
HRESULT Clone([out] IEnumProgressItems **ppEnum );
};
[
object, pointer_default(unique),
dual, nonextensible, oleautomation,
uuid(2C941FD7-975B-59BE-A960-9A2A262853A5),
helpstring("Progress item block mapping collection")
]
interface IProgressItems : IDispatch
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(DISPID_NEWENUM),
hidden, restricted,
helpstring("Get an enumerator for the collection")
]
HRESULT _NewEnum([out,retval] IEnumVARIANT **NewEnum );
[ //////////////////////////////////////////////////////////////////////////
propget, id(DISPID_VALUE),
helpstring("Find the block mapping from the specified index")
]
HRESULT Item([in] long Index, [out,retval] IProgressItem **item );
[ //////////////////////////////////////////////////////////////////////////
propget, id(1),
helpstring("Number of items in the collection")
]
HRESULT Count([out,retval] long *Count);
[ //////////////////////////////////////////////////////////////////////////
id(2),
helpstring("Find the block mapping from the specified block")
]
HRESULT ProgressItemFromBlock([in] ULONG block, [out,retval] IProgressItem **item );
[ //////////////////////////////////////////////////////////////////////////
id(3),
helpstring("Find the block mapping from the specified item description")
]
HRESULT ProgressItemFromDescription([in] BSTR description, [out,retval] IProgressItem **item );
[ //////////////////////////////////////////////////////////////////////////
propget, id(4),
hidden,restricted,
helpstring("Get a non-variant enumerator")
]
HRESULT EnumProgressItems([out,retval] IEnumProgressItems **NewEnum );
};
[
object, pointer_default(unique),
dual, oleautomation,
uuid(2C941FD8-975B-59BE-A960-9A2A262853A5),
helpstring("FileSystemImage result stream")
]
interface IFileSystemImageResult : IDispatch
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(1),
helpstring("Image stream")
]
HRESULT ImageStream([out,retval] IStream **pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(2),
helpstring("Progress item block mapping collection")
]
HRESULT ProgressItems([out,retval] IProgressItems **pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(3),
helpstring("Number of blocks in the result image")
]
HRESULT TotalBlocks([out,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(4),
helpstring("Number of bytes in a block")
]
HRESULT BlockSize([out,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(5),
helpstring("Disc Identifier (for identifing imported session of multi-session disc)")
]
HRESULT DiscId([out,retval] BSTR *pVal);
};
[
object, pointer_default(unique),
dual, oleautomation,
uuid(B507CA29-2204-11DD-966A-001AA01BBC58),
helpstring("FileSystemImage result stream (rev.2)")
]
interface IFileSystemImageResult2 : IFileSystemImageResult
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(6),
helpstring("List of modified block ranges in the result stream")
]
HRESULT ModifiedBlocks([out,ref,retval] IBlockRangeList **pVal);
}
[
object, pointer_default(unique),
dual, oleautomation,
uuid(2C941FD9-975B-59BE-A960-9A2A262853A5),
helpstring("FileSystemImage item")
]
interface IFsiItem : IDispatch
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(11),
helpstring("Item name")
]
HRESULT Name([out,retval] BSTR *pVal );
[ //////////////////////////////////////////////////////////////////////////
propget, id(12),
helpstring("Full path")
]
HRESULT FullPath([out,retval] BSTR *pVal );
[ //////////////////////////////////////////////////////////////////////////
propget, id(13),
helpstring("Date and time of creation")
]
HRESULT CreationTime([out,retval] DATE *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(13),
helpstring("Date and time of creation")
]
HRESULT CreationTime([in] DATE newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(14),
helpstring("Date and time of last access")
]
HRESULT LastAccessedTime([out,retval] DATE *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(14),
helpstring("Date and time of last access")
]
HRESULT LastAccessedTime([in] DATE newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(15),
helpstring("Date and time of last modification")
]
HRESULT LastModifiedTime([out,retval] DATE *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(15),
helpstring("Date and time of last modification")
]
HRESULT LastModifiedTime([in] DATE newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(16),
helpstring("Flag indicating if item is hidden")
]
HRESULT IsHidden([out,retval] VARIANT_BOOL *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(16),
helpstring("Flag indicating if item is hidden")
]
HRESULT IsHidden([in] VARIANT_BOOL newVal);
[ //////////////////////////////////////////////////////////////////////////
id(17),
helpstring("Name of item in the specified file system")
]
HRESULT FileSystemName([in] FsiFileSystems fileSystem, [out,retval] BSTR *pVal );
[ //////////////////////////////////////////////////////////////////////////
id(18),
helpstring("Name of item in the specified file system")
]
HRESULT FileSystemPath([in] FsiFileSystems fileSystem, [out,retval] BSTR *pVal );
};
[
object, pointer_default(unique),
uuid(2C941FDA-975B-59BE-A960-9A2A262853A5),
helpstring("FileSystemImage item enumerator")
]
interface IEnumFsiItems : IUnknown
{
[ //////////////////////////////////////////////////////////////////////////
local,
helpstring("Get next items in the enumeration")
]
HRESULT Next([in] ULONG celt, [out,size_is(celt)] IFsiItem **rgelt , [out] ULONG *pceltFetched);
[ //////////////////////////////////////////////////////////////////////////
call_as(Next),
helpstring("Remoting support for Next (allow NULL pointer for item count when requesting single item)")
]
HRESULT RemoteNext([in,range(0,0x7FFFFFFF)] ULONG celt, [out,size_is(celt)] IFsiItem **rgelt , [out] ULONG *pceltFetched);
[ //////////////////////////////////////////////////////////////////////////
helpstring("Skip items in the enumeration")
]
HRESULT Skip([in] ULONG celt);
[ //////////////////////////////////////////////////////////////////////////
helpstring("Reset the enumerator")
]
HRESULT Reset();
[ //////////////////////////////////////////////////////////////////////////
helpstring("Make a copy of the enumerator")
]
HRESULT Clone([out] IEnumFsiItems **ppEnum );
};
[
object, pointer_default(unique),
dual, oleautomation,
uuid(2C941FDB-975B-59BE-A960-9A2A262853A5),
helpstring("FileSystemImage file item")
]
interface IFsiFileItem : IFsiItem
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(41),
helpstring("Data byte count")
]
HRESULT DataSize([out,retval] LONGLONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(42),
helpstring("Lower 32 bits of the data byte count")
]
HRESULT DataSize32BitLow([out,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(43),
helpstring("Upper 32 bits of the data byte count")
]
HRESULT DataSize32BitHigh([out,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(44),
helpstring("Data stream")
]
HRESULT Data([out,retval] IStream **pVal );
[ //////////////////////////////////////////////////////////////////////////
propput, id(44),
helpstring("Data stream")
]
HRESULT Data([in] IStream *newVal);
};
// Forward declaration for interface IFsiNamedStreams
interface IFsiNamedStreams;
[
object, pointer_default(unique),
dual, oleautomation,
uuid(199D0C19-11E1-40eb-8EC2-C8C822A07792),
helpstring("FileSystemImage file item (rev.2)")
]
interface IFsiFileItem2 : IFsiFileItem
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(45),
hidden,restricted,
helpstring("Get the list of the named streams of the file")
]
HRESULT FsiNamedStreams([out,ref,retval] IFsiNamedStreams **streams);
[ //////////////////////////////////////////////////////////////////////////
propget, id(46),
helpstring("Flag indicating if file item is a named stream of a file")
]
HRESULT IsNamedStream([out,ref,retval] VARIANT_BOOL *pVal);
[ //////////////////////////////////////////////////////////////////////////
id(47),
helpstring("Add a new named stream to the collection")
]
HRESULT AddStream([in] BSTR name, [in] IStream *streamData);
[ //////////////////////////////////////////////////////////////////////////
id(48),
helpstring("Remove a specific named stream from the collection")
]
HRESULT RemoveStream([in] BSTR name);
[ //////////////////////////////////////////////////////////////////////////
propget, id(49),
helpstring("Flag indicating if file is Real-Time")
]
HRESULT IsRealTime([out,ref,retval] VARIANT_BOOL *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(49),
helpstring("Flag indicating if file is Real-Time")
]
HRESULT IsRealTime([in] VARIANT_BOOL newVal);
};
[
object, pointer_default(unique),
dual, oleautomation, nonextensible,
uuid(ED79BA56-5294-4250-8D46-F9AECEE23459),
helpstring("Named stream collection")
]
interface IFsiNamedStreams : IDispatch
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(DISPID_NEWENUM),
hidden, restricted,
helpstring("Get an enumerator for the named stream collection")
]
HRESULT _NewEnum([out,ref,retval] IEnumVARIANT **NewEnum);
[ //////////////////////////////////////////////////////////////////////////
propget, id(DISPID_VALUE),
helpstring("Get a named stream from the collection")
]
HRESULT Item([in] LONG index, [out,ref,retval] IFsiFileItem2 **item);
[ //////////////////////////////////////////////////////////////////////////
propget, id(81),
helpstring("Number of named streams in the collection")
]
HRESULT Count([out,ref,retval] LONG *count);
[ //////////////////////////////////////////////////////////////////////////
propget, id(82),
hidden,restricted,
helpstring("Get a non-variant enumerator for the named stream collection")
]
HRESULT EnumNamedStreams([out,ref,retval] IEnumFsiItems **NewEnum);
}
[
object, pointer_default(unique),
dual, oleautomation,
uuid(2C941FDC-975B-59BE-A960-9A2A262853A5),
helpstring("FileSystemImage directory item")
]
interface IFsiDirectoryItem : IFsiItem
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(DISPID_NEWENUM),
hidden, restricted,
helpstring("Get an enumerator for the collection")
]
HRESULT _NewEnum([out,retval] IEnumVARIANT **NewEnum );
[ //////////////////////////////////////////////////////////////////////////
propget, id(DISPID_VALUE),
helpstring("Get the item with the given relative path")
]
HRESULT Item([in] BSTR path, [out,retval] IFsiItem **item );
[ //////////////////////////////////////////////////////////////////////////
propget, id(1),
helpstring("Number of items in the collection")
]
HRESULT Count([out,retval] LONG *Count);
[ //////////////////////////////////////////////////////////////////////////
propget, id(2),
hidden,restricted,
helpstring("Get a non-variant enumerator")
]
HRESULT EnumFsiItems([out,retval] IEnumFsiItems **NewEnum );
[ //////////////////////////////////////////////////////////////////////////
id(30),
helpstring("Add a directory with the specified relative path")
]
HRESULT AddDirectory([in] BSTR path);
[ //////////////////////////////////////////////////////////////////////////
id(31),
helpstring("Add a file with the specified relative path and data")
]
HRESULT AddFile([in] BSTR path, [in] IStream *fileData);
[ //////////////////////////////////////////////////////////////////////////
id(32),
helpstring("Add files and directories from the specified source directory")
]
HRESULT AddTree([in] BSTR sourceDirectory, [in] VARIANT_BOOL includeBaseDirectory);
[ //////////////////////////////////////////////////////////////////////////
id(33),
helpstring("Add an item")
]
HRESULT Add([in] IFsiItem *item);
[ //////////////////////////////////////////////////////////////////////////
id(34),
helpstring("Remove an item with the specified relative path")
]
HRESULT Remove([in] BSTR path);
[ //////////////////////////////////////////////////////////////////////////
id(35),
helpstring("Remove a subtree with the specified relative path")
]
HRESULT RemoveTree([in] BSTR path);
};
[
object, pointer_default(unique),
dual, oleautomation,
uuid(F7FB4B9B-6D96-4d7b-9115-201B144811EF),
helpstring("FileSystemImage directory item (rev.2)")
]
interface IFsiDirectoryItem2 : IFsiDirectoryItem
{
[ //////////////////////////////////////////////////////////////////////////
id(36),
helpstring("Add files and directories from the specified source directory"
" including named streams")
]
HRESULT AddTreeWithNamedStreams([in] BSTR sourceDirectory,
[in] VARIANT_BOOL includeBaseDirectory);
};
[
object, pointer_default(unique),
dual, oleautomation,
uuid(2C941FE1-975B-59BE-A960-9A2A262853A5),
helpstring("File system image")
]
interface IFileSystemImage : IDispatch
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(0),
helpstring("Root directory item")
]
HRESULT Root([out,ref,retval] IFsiDirectoryItem **pVal );
[ //////////////////////////////////////////////////////////////////////////
propget, id(1),
helpstring("Disc start block for the image")
]
HRESULT SessionStartBlock([out,ref,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(1),
helpstring("Disc start block for the image")
]
HRESULT SessionStartBlock([in] LONG newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(2),
helpstring("Maximum number of blocks available for the image")
]
HRESULT FreeMediaBlocks([out,ref,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(2),
helpstring("Maximum number of blocks available for the image")
]
HRESULT FreeMediaBlocks([in] LONG newVal);
[ //////////////////////////////////////////////////////////////////////////
id(36),
helpstring("Set maximum number of blocks available based on the recorder supported discs. 0 for unknown maximum may be set.")
]
HRESULT SetMaxMediaBlocksFromDevice([in] IDiscRecorder2 *discRecorder);
[ //////////////////////////////////////////////////////////////////////////
propget, id(3),
helpstring("Number of blocks in use")
]
HRESULT UsedBlocks([out,ref,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(4),
helpstring("Volume name")
]
HRESULT VolumeName([out,ref,retval] BSTR *pVal );
[ //////////////////////////////////////////////////////////////////////////
propput, id(4),
helpstring("Volume name")
]
HRESULT VolumeName([in] BSTR newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(5),
helpstring("Imported Volume name")
]
HRESULT ImportedVolumeName([out,ref,retval] BSTR *pVal );
[ //////////////////////////////////////////////////////////////////////////
propget, id(6),
helpstring("Boot image and boot options")
]
HRESULT BootImageOptions([out,ref,retval] IBootOptions **pVal );
[ //////////////////////////////////////////////////////////////////////////
propput, id(6),
helpstring("Boot image and boot options")
]
HRESULT BootImageOptions([in] IBootOptions *newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(7),
helpstring("Number of files in the image")
]
HRESULT FileCount([out,ref,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(8),
helpstring("Number of directories in the image")
]
HRESULT DirectoryCount([out,ref,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(9),
helpstring("Temp directory for stash files")
]
HRESULT WorkingDirectory([out,ref,retval] BSTR *pVal );
[ //////////////////////////////////////////////////////////////////////////
propput, id(9),
helpstring("Temp directory for stash files")
]
HRESULT WorkingDirectory([in] BSTR newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(10),
helpstring("Change point identifier")
]
HRESULT ChangePoint([out,ref,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(11),
helpstring("Strict file system compliance option")
]
HRESULT StrictFileSystemCompliance([out,ref,retval] VARIANT_BOOL *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(11),
helpstring("Strict file system compliance option")
]
HRESULT StrictFileSystemCompliance([in] VARIANT_BOOL newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(12),
helpstring("If true, indicates restricted character set is being used for file and directory names")
]
HRESULT UseRestrictedCharacterSet([out,ref,retval] VARIANT_BOOL *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(12),
helpstring("Set to true to restrict character set for file and directory names")
]
HRESULT UseRestrictedCharacterSet([in] VARIANT_BOOL newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(13),
helpstring("File systems to create")
]
HRESULT FileSystemsToCreate([out,ref,retval] FsiFileSystems *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(13),
helpstring("File systems to create")
]
HRESULT FileSystemsToCreate([in] FsiFileSystems newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(14),
helpstring("File systems supported")
]
HRESULT FileSystemsSupported([out,ref,retval] FsiFileSystems *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(37),
helpstring("UDF revision")
]
HRESULT UDFRevision([in] LONG newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(37),
helpstring("UDF revision")
]
HRESULT UDFRevision([out,ref,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(31),
helpstring("UDF revision(s) supported")
]
HRESULT UDFRevisionsSupported([out,ref,retval] SAFEARRAY(VARIANT) *pVal);
[ //////////////////////////////////////////////////////////////////////////
id(32),
helpstring("Select filesystem types and image size based on the current media")
]
HRESULT ChooseImageDefaults([in] IDiscRecorder2 *discRecorder);
[ //////////////////////////////////////////////////////////////////////////
id(33),
helpstring("Select filesystem types and image size based on the media type")
]
HRESULT ChooseImageDefaultsForMediaType([in] IMAPI_MEDIA_PHYSICAL_TYPE value);
[ //////////////////////////////////////////////////////////////////////////
propput, id(34),
helpstring("ISO compatibility level to create")
]
HRESULT ISO9660InterchangeLevel([in] LONG newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(34),
helpstring("ISO compatibility level to create")
]
HRESULT ISO9660InterchangeLevel([out,ref,retval] LONG *pVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(38),
helpstring("ISO compatibility level(s) supported")
]
HRESULT ISO9660InterchangeLevelsSupported([out,ref,retval] SAFEARRAY(VARIANT) *pVal);
[ //////////////////////////////////////////////////////////////////////////
id(15),
helpstring("Create result image stream")
]
HRESULT CreateResultImage([out,ref,retval] IFileSystemImageResult **resultStream );
[ //////////////////////////////////////////////////////////////////////////
id(16),
helpstring("Check for existance an item in the file system")
]
HRESULT Exists([in] BSTR fullPath, [out,ref,retval] FsiItemType *itemType);
[ //////////////////////////////////////////////////////////////////////////
id(18),
helpstring("Return a string useful for identifying the current disc")
]
HRESULT CalculateDiscIdentifier([out,ref,retval] BSTR *discIdentifier );
[ //////////////////////////////////////////////////////////////////////////
id(19),
helpstring("Identify file systems on a given disc")
]
HRESULT IdentifyFileSystemsOnDisc([in] IDiscRecorder2 *discRecorder, [out,ref,retval] FsiFileSystems *fileSystems);
[ //////////////////////////////////////////////////////////////////////////
id(20),
helpstring("Identify which of the specified file systems would be imported by default")
]
HRESULT GetDefaultFileSystemForImport([in] FsiFileSystems fileSystems, [out,ref,retval] FsiFileSystems *importDefault);
[ //////////////////////////////////////////////////////////////////////////
id(21),
helpstring("Import the default file system on the current disc")
]
HRESULT ImportFileSystem([out,ref,retval] FsiFileSystems *importedFileSystem);
[ //////////////////////////////////////////////////////////////////////////
id(22),
helpstring("Import a specific file system on the current disc")
]
HRESULT ImportSpecificFileSystem([in] FsiFileSystems fileSystemToUse);
[ //////////////////////////////////////////////////////////////////////////
id(23),
helpstring("Roll back to the specified change point")
]
HRESULT RollbackToChangePoint([in] LONG changePoint);
[ //////////////////////////////////////////////////////////////////////////
id(24),
helpstring("Lock in changes")
]
HRESULT LockInChangePoint();
[ //////////////////////////////////////////////////////////////////////////
id(25),
helpstring("Create a directory item with the specified name")
]
HRESULT CreateDirectoryItem([in] BSTR name, [out,ref,retval] IFsiDirectoryItem **newItem );
[ //////////////////////////////////////////////////////////////////////////
id(26),
helpstring("Create a file item with the specified name")
]
HRESULT CreateFileItem([in] BSTR name, [out,ref,retval] IFsiFileItem **newItem );
[ //////////////////////////////////////////////////////////////////////////
propget, id(27),
helpstring("Volume name")
]
HRESULT VolumeNameUDF([out,ref,retval] BSTR *pVal );
[ //////////////////////////////////////////////////////////////////////////
propget, id(28),
helpstring("Volume name")
]
HRESULT VolumeNameJoliet([out,ref,retval] BSTR *pVal );
[ //////////////////////////////////////////////////////////////////////////
propget, id(29),
helpstring("Volume name")
]
HRESULT VolumeNameISO9660([out,ref,retval] BSTR *pVal );
[ //////////////////////////////////////////////////////////////////////////
propget, id(30),
helpstring("Indicates whether or not IMAPI should stage the filesystem before the burn")
]
HRESULT StageFiles([out,ref,retval] VARIANT_BOOL *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(30),
helpstring("Set to false to force IMAPI to not stage the filesystem prior to the burn")
]
HRESULT StageFiles([in] VARIANT_BOOL newVal);
[ //////////////////////////////////////////////////////////////////////////
propget, id(40),
helpstring("Get array of available multi-session interfaces.")
]
HRESULT MultisessionInterfaces([out,ref,retval] SAFEARRAY(VARIANT) *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(40),
helpstring("Set array of available multi-session interfaces.")
]
HRESULT MultisessionInterfaces([in] SAFEARRAY(VARIANT) newVal);
};
[
object, pointer_default(unique),
dual, oleautomation,
uuid(D7644B2C-1537-4767-B62F-F1387B02DDFD),
helpstring("File system image (rev.2)")
]
interface IFileSystemImage2 : IFileSystemImage
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(60),
helpstring("Get boot options array for supporting multi-boot")
]
HRESULT BootImageOptionsArray([out,ref,retval] SAFEARRAY(VARIANT) *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(60),
helpstring("Set boot options array for supporting multi-boot")
]
HRESULT BootImageOptionsArray([in] SAFEARRAY(VARIANT) newVal);
}
[
object, pointer_default(unique),
dual, oleautomation,
uuid(7CFF842C-7E97-4807-8304-910DD8F7C051),
helpstring("File system image (rev.3)")
]
interface IFileSystemImage3 : IFileSystemImage2
{
[ //////////////////////////////////////////////////////////////////////////
propget, id(61),
helpstring("If true, indicates that UDF Metadata and Metadata Mirror "
"files are truly redundant, i.e. reference different extents")
]
HRESULT CreateRedundantUdfMetadataFiles([out,ref,retval] VARIANT_BOOL *pVal);
[ //////////////////////////////////////////////////////////////////////////
propput, id(61),
helpstring("Set to true to force UDF Metadata and Metadata Mirror files "
"to be truly redundant, i.e. reference different extents")
]
HRESULT CreateRedundantUdfMetadataFiles([in] VARIANT_BOOL newVal);
[ //////////////////////////////////////////////////////////////////////////
id(70),
helpstring("Probe if a specific file system on the disc is appendable through IMAPI")
]
HRESULT ProbeSpecificFileSystem([in] FsiFileSystems fileSystemToProbe, [out,ref,retval] VARIANT_BOOL *isAppendable);
};
////////////////////////////////////////////////////////////////////////////////
cpp_quote("#define DISPID_DFILESYSTEMIMAGEEVENTS_UPDATE 0x100")
[
object, nonextensible,
oleautomation,
uuid(2C941FDF-975B-59BE-A960-9A2A262853A5),
pointer_default(unique),
helpstring("Provides notification of file system creation progress")
]
interface DFileSystemImageEvents : IDispatch
{
[ //////////////////////////////////////////////////////////////////////////
id(0x100),
helpstring("File Import Progress")
]
HRESULT Update([in] IDispatch /* IFileSystemImage */ * object,
[in] BSTR currentFile,
[in] LONG copiedSectors,
[in] LONG totalSectors);
}
cpp_quote("#define DISPID_DFILESYSTEMIMAGEIMPORTEVENTS_UPDATEIMPORT 0x101")
[
object, nonextensible,
oleautomation,
uuid(D25C30F9-4087-4366-9E24-E55BE286424B),
pointer_default(unique),
helpstring("Provides notification of file system import progress")
]
interface DFileSystemImageImportEvents : IDispatch
{
[ //////////////////////////////////////////////////////////////////////////
id(0x101),
helpstring("File System Import Progress")
]
HRESULT UpdateImport([in] IDispatch /* IFileSystemImage3 */ *object,
[in] FsiFileSystems fileSystem,
[in] BSTR currentItem,
[in] LONG importedDirectoryItems,
[in] LONG totalDirectoryItems,
[in] LONG importedFileItems,
[in] LONG totalFileItems);
}
[
object,
uuid(6CA38BE5-FBBB-4800-95A1-A438865EB0D4),
pointer_default(unique),
helpstring("ISO Image Manager: Helper object for ISO image file manipulation")
]
interface IIsoImageManager : IDispatch
{
//// PROPERTIES ////
[ //////////////////////////////////////////////////////////////////////////
propget, id(0x100),
helpstring("Path to the ISO image file")
]
HRESULT Path( [out,ref,retval] BSTR *pVal );
[ //////////////////////////////////////////////////////////////////////////
propget, id(0x101),
helpstring("Stream from the ISO image")
]
HRESULT Stream( [out,retval] IStream** data );
//// METHODS ////
[ //////////////////////////////////////////////////////////////////////////
id(0x200),
helpstring("Set path to the ISO image file, overwrites stream")
]
HRESULT SetPath( [in] BSTR Val );
[ //////////////////////////////////////////////////////////////////////////
id(0x201),
helpstring("Set stream from the ISO image, overwrites path")
]
HRESULT SetStream( [in] IStream* data );
[ //////////////////////////////////////////////////////////////////////////
id(0x202),
helpstring("Validate if the ISO image file is a valid file")
]
HRESULT Validate();
}
////////////////////////////////////////////////////////////////////////////////
cpp_quote("")
cpp_quote("//")
cpp_quote("// IMAPIv2 FileSystemImaging version information for TYPELib loading")
cpp_quote("//")
cpp_quote("#define IMAPI2FS_MajorVersion 1 " )
cpp_quote("#define IMAPI2FS_MinorVersion 0 " )
cpp_quote("#define IMAPI2FS_FullVersion_STR \"1.0\"")
cpp_quote("#define IMAPI2FS_FullVersion_WSTR L\"1.0\"")
[
version(1.0),
uuid(2C941FD0-975B-59BE-A960-9A2A262853A5),
helpstring("Microsoft IMAPI2 File System Image Creator")
]
library IMAPI2FS
{
importlib("stdole2.tlb");
interface DFileSystemImageEvents;
interface DFileSystemImageImportEvents;
[
uuid(2C941FCE-975B-59BE-A960-9A2A262853A5),
helpstring("Boot options")
]
coclass BootOptions
{
[default] interface IBootOptions;
};
[
noncreatable,
uuid(2C941FCD-975B-59BE-A960-9A2A262853A5),
helpstring("Stream")
]
coclass FsiStream {
[default] interface IStream;
};
[
noncreatable,
uuid(2C941FCC-975B-59BE-A960-9A2A262853A5),
helpstring("FileSystemImage result stream")
]
coclass FileSystemImageResult {
[default] interface IFileSystemImageResult2;
interface IFileSystemImageResult;
};
[
noncreatable,
uuid(2C941FCB-975B-59BE-A960-9A2A262853A5),
helpstring("Progress item block mapping")
]
coclass ProgressItem {
[default] interface IProgressItem;
};
[
noncreatable,
uuid(2C941FCA-975B-59BE-A960-9A2A262853A5),
helpstring("Progress item block mapping enumerator")
]
coclass EnumProgressItems {
[default] interface IEnumProgressItems;
};
[
noncreatable,
uuid(2C941FC9-975B-59BE-A960-9A2A262853A5),
helpstring("Progress item block mapping collection")
]
coclass ProgressItems {
[default] interface IProgressItems;
};
[
noncreatable,
uuid(2C941FC8-975B-59BE-A960-9A2A262853A5),
helpstring("Directory item")
]
coclass FsiDirectoryItem {
[default] interface IFsiDirectoryItem2;
interface IFsiDirectoryItem;
interface IFsiItem;
};
[
noncreatable,
uuid(2C941FC7-975B-59BE-A960-9A2A262853A5),
helpstring("File item")
]
coclass FsiFileItem {
[default] interface IFsiFileItem2;
interface IFsiFileItem;
interface IFsiItem;
};
[
noncreatable,
uuid(2C941FC6-975B-59BE-A960-9A2A262853A5),
helpstring("FileSystemImage item enumerator")
]
coclass EnumFsiItems {
[default] interface IEnumFsiItems;
};
[
noncreatable,
uuid(C6B6F8ED-6D19-44b4-B539-B159B793A32D),
helpstring("Named stream collection")
]
coclass FsiNamedStreams {
[default] interface IFsiNamedStreams;
};
[
uuid(2C941FC5-975B-59BE-A960-9A2A262853A5),
helpstring("File system image")
]
coclass MsftFileSystemImage {
[default] interface IFileSystemImage3;
interface IFileSystemImage2;
[default,source] interface DFileSystemImageEvents;
[source] interface DFileSystemImageImportEvents;
interface IConnectionPointContainer;
interface IFileSystemImage;
};
[
uuid(CEEE3B62-8F56-4056-869B-EF16917E3EFC),
helpstring("Microsoft IMAPIv2 Iso Image Manager"),
]
coclass MsftIsoImageManager
{
[default] interface IIsoImageManager;
};
[
noncreatable,
uuid(B507CA27-2204-11DD-966A-001AA01BBC58),
helpstring("A range of LBAs")
]
coclass BlockRange {
[default] interface IBlockRange;
};
[
noncreatable,
uuid(B507CA28-2204-11DD-966A-001AA01BBC58),
helpstring("A list of LBA ranges")
]
coclass BlockRangeList {
[default] interface IBlockRangeList;
};
}