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.
155 lines
4.8 KiB
Plaintext
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 );
|
|
}
|
|
|