Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

155 lines
4.8 KiB
Plaintext

//-------------------------------------------------------
//
// ITrackFile
//
// This interface can be used to create a reliable link
// to a file. This interface is not remotable.
//
//-------------------------------------------------------
cpp_quote( "EXTERN_C const CLSID CLSID_TrackFile; // {8790c947-a30b-11d0-8cab-00c04fd90f85}" )
[
local,
uuid(8790c948-a30b-11d0-8cab-00c04fd90f85),
object,
pointer_default(unique),
version(1.0)
]
interface ITrackFile : IUnknown
{
import "unknwn.idl";
// Get necessary link state from a path
HRESULT CreateFromPath( [in, string] const OLECHAR * poszPath );
// Use state from CreateFromPath to determine
// the current path
HRESULT Resolve( [in, out] DWORD * pcbPath,
[out, size_is(*pcbPath), string] OLECHAR * poszPath,
[in] DWORD dwMillisecondTimeout );
// Open the file. Use the path as a hint, but ensure that the
// correct object ID is opened. This method will Resolve if
// necessary.
HRESULT Open( [in, out] DWORD * pcbPathHint,
[in, out, size_is(*pcbPathHint), string] OLECHAR * poszPathHint,
[in] DWORD dwMillisecondTimeout,
[in] DWORD dwDesiredAccess, // access (read-write) mode
[in] DWORD dwShareMode, // share mode
[in] DWORD dwFlags,
[out] HANDLE * phFile );
}
//-------------------------------------------------------
//
// ITrackStorage
//
// This interface can be used to create a reliable link
// to a structured storage. This interface is remotable.
//
//-------------------------------------------------------
[
uuid(8790c94a-a30b-11d0-8cab-00c04fd90f85),
object,
pointer_default(unique),
version(1.0)
]
interface ITrackStorage : IUnknown
{
import "unknwn.idl";
// Get necessary link state from a path
HRESULT CreateFromPath( [in, string] const OLECHAR * poszPath );
// Use state from CreateFromPath to determine
// the current path
HRESULT Resolve( [in, out] DWORD * pcbPath,
[out, size_is(*pcbPath), string] OLECHAR * poszPath,
[in] DWORD dwMillisecondTimeout );
// Open the storage. Use the path as a hint, but ensure that the
// correct object ID is opened. This method will Resolve if
// necessary. The parameters are the same as in StgOpenStorageEx.
HRESULT OpenStorageEx( [in, out] DWORD * pcbPathHint,
[in, out, size_is(*pcbPathHint), string] OLECHAR * poszPathHint,
[in] DWORD dwMillisecondTimeout,
[in] DWORD grfMode,
[in] DWORD stgfmt, // enum
[in] DWORD grfAttrs, // reserved
[in] REFIID riid,
[out, iid_is(riid)] void ** ppObjectOpen );
}
//-------------------------------------------------------
//
// ITrackFileRestricted
//
// This interface is used for testing purposed only.
// It is equivalent to ITrackFile, except the Resolve
// method allows for special restrictions.
//
//-------------------------------------------------------
[
local,
uuid(8790c949-a30b-11d0-8cab-00c04fd90f85),
object,
pointer_default(unique),
version(1.0)
]
interface ITrackFileRestricted : IUnknown
{
import "unknwn.idl";
cpp_quote("")
cpp_quote("// 'Restrictions' flags")
typedef enum _TrkMendRestrictions
{
TRK_MEND_DEFAULT = 0,
TRK_MEND_LAST_ONLY = 1,
TRK_MEND_DONT_USE_LOG = 2,
TRK_MEND_DONT_USE_DC = 4,
TRK_MEND_SLEEP_DURING_SEARCH = 8,
TRK_MEND_DONT_SEARCH_ALL_VOLUMES = 16,
TRK_MEND_DONT_USE_VOLIDS = 32
} TrkMendRestrictions;
// Get necessary link state from a path
HRESULT CreateFromPath( [in, string] const OLECHAR * poszPath );
// Use state from CreateFromPath to determine
// the current path
HRESULT Resolve( [in, out] DWORD * pcbPath,
[out, size_is(*pcbPath), string] OLECHAR * poszPath,
[in] DWORD dwMillisecondTimeout,
[in] DWORD Restrictions );
// Open the file. Use the path as a hint, but ensure that the
// correct object ID is opened. This method will Resolve if
// necessary.
HRESULT Open ([in, out] DWORD * pcbPathHint,
[in, out, size_is(*pcbPathHint), string] OLECHAR * poszPathHint,
[in] DWORD dwMillisecondTimeout,
[in] DWORD dwDesiredAccess, // access (read-write) mode
[in] DWORD dwShareMode, // share mode
[in] DWORD dwFlags,
[out] HANDLE * phFile );
}