summaryrefslogtreecommitdiffstats
path: root/private/utils/ulib/inc/system.hxx
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/utils/ulib/inc/system.hxx253
1 files changed, 253 insertions, 0 deletions
diff --git a/private/utils/ulib/inc/system.hxx b/private/utils/ulib/inc/system.hxx
new file mode 100644
index 000000000..a204e07a1
--- /dev/null
+++ b/private/utils/ulib/inc/system.hxx
@@ -0,0 +1,253 @@
+/*++
+
+Copyright (c) 1991 Microsoft Corporation
+
+Module Name:
+
+ system.hxx
+
+Abstract:
+
+ This module contains the definition for the SYSTEM class. The SYSTEM
+ class is an abstract class which offers an interface for communicating
+ with the underlying operating system.
+
+Author:
+
+ David J. Gilman (davegi) 13-Jan-1991
+
+Environment:
+
+ ULIB, User Mode
+
+Notes:
+
+
+
+--*/
+
+#if ! defined( _SYSTEM_ )
+
+#define _SYSTEM_
+
+DECLARE_CLASS( FSN_DIRECTORY );
+DECLARE_CLASS( FSN_FILE );
+DECLARE_CLASS( FSNODE );
+DECLARE_CLASS( WSTRING );
+DECLARE_CLASS( STREAM );
+DECLARE_CLASS( TIMEINFO );
+
+#include "message.hxx"
+#include "path.hxx"
+#include "basesys.hxx"
+
+extern "C" {
+ #include <stdarg.h>
+}
+
+
+
+enum DRIVE_TYPE {
+ UnknownDrive,
+ RemovableDrive,
+ FixedDrive,
+ RemoteDrive,
+ CdRomDrive,
+ RamDiskDrive
+};
+
+enum FILE_TYPE {
+ UnknownFile,
+ DiskFile,
+ CharFile,
+ PipeFile
+};
+
+struct _VOL_SERIAL_NUMBER {
+ ULONG HighOrder32Bits;
+ ULONG LowOrder32Bits;
+};
+
+DEFINE_TYPE( struct _VOL_SERIAL_NUMBER, VOL_SERIAL_NUMBER );
+
+class SYSTEM : public BASE_SYSTEM {
+
+ friend
+ BOOLEAN
+ InitializeUlib(
+ IN HANDLE DllHandle,
+ IN ULONG Reason,
+ IN PVOID Reserved
+ );
+
+ public:
+
+ STATIC
+ ULIB_EXPORT
+ PFSN_DIRECTORY
+ MakeDirectory (
+ IN PCPATH Path,
+ IN PCPATH TemplatePath OPTIONAL
+ );
+
+ STATIC
+ ULIB_EXPORT
+ PFSN_FILE
+ MakeFile (
+ IN PCPATH Path
+ );
+
+ STATIC
+ ULIB_EXPORT
+ PFSN_FILE
+ MakeTemporaryFile (
+ IN PCWSTRING PrefixString,
+ IN PCPATH Path DEFAULT NULL
+ );
+
+ STATIC
+ ULIB_EXPORT
+ BOOLEAN
+ RemoveNode (
+ IN PFSNODE *PointerToNode,
+ IN BOOLEAN Force DEFAULT FALSE
+ );
+
+ STATIC
+ ULIB_EXPORT
+ BOOLEAN
+ IsCorrectVersion (
+ );
+
+ STATIC
+ PPATH
+ QueryCurrentPath (
+ );
+
+ STATIC
+ ULIB_EXPORT
+ PFSN_DIRECTORY
+ QueryDirectory (
+ IN PCPATH Path,
+ IN BOOLEAN GetWhatYouCan DEFAULT FALSE
+ );
+
+ STATIC
+ ULIB_EXPORT
+ PWSTRING
+ QueryEnvironmentVariable (
+ IN PCWSTRING Variable
+ );
+
+
+ STATIC
+ ULIB_EXPORT
+ PPATH
+ QuerySystemDirectory (
+ );
+
+ STATIC
+ ULIB_EXPORT
+ PPATH
+ SearchPath(
+ PWSTRING pFileName,
+ PWSTRING pSearchPath DEFAULT NULL
+ );
+
+ STATIC
+ ULIB_EXPORT
+ PFSN_FILE
+ QueryFile (
+ IN PCPATH Path
+ );
+
+ STATIC
+ ULIB_EXPORT
+ BOOLEAN
+ QueryCurrentDosDriveName(
+ OUT PWSTRING DosDriveName
+ );
+
+ STATIC
+ ULIB_EXPORT
+ DRIVE_TYPE
+ QueryDriveType(
+ IN PCWSTRING DosDriveName
+ );
+
+ STATIC
+ ULIB_EXPORT
+ FILE_TYPE
+ QueryFileType(
+ IN PCWSTRING DosFileName
+ );
+
+ STATIC
+ ULIB_EXPORT
+ PWSTRING
+ QueryVolumeLabel(
+ IN PPATH Path,
+ OUT PVOL_SERIAL_NUMBER SerialNumber
+ );
+
+ STATIC
+ ULIB_EXPORT
+ FARPROC
+ QueryLibraryEntryPoint(
+ IN PCWSTRING LibraryName,
+ IN PCWSTRING EntryPointName,
+ OUT PHANDLE LibraryHandle
+ );
+
+ STATIC
+ ULIB_EXPORT
+ VOID
+ FreeLibraryHandle(
+ IN HANDLE LibraryHandle
+ );
+
+ STATIC
+ BOOLEAN
+ PutStandardStream(
+ IN DWORD StdHandle,
+ IN PSTREAM pStream
+ );
+
+ STATIC
+ ULIB_EXPORT
+ BOOLEAN
+ QueryLocalTimeFromUTime(
+ IN PCTIMEINFO UTimeInfo,
+ OUT PTIMEINFO LocalTimeInfo
+ );
+
+ STATIC
+ BOOLEAN
+ QueryUTimeFromLocalTime(
+ IN PCTIMEINFO LocalTimeInfo,
+ OUT PTIMEINFO UTimeInfo
+ );
+
+ STATIC
+ ULIB_EXPORT
+ BOOLEAN
+ QueryWindowsErrorMessage(
+ IN ULONG WindowsErrorCode,
+ OUT PWSTRING ErrorMessage
+ );
+
+};
+
+
+INLINE
+PPATH
+SYSTEM::QueryCurrentPath (
+ )
+
+{
+ DebugAssert( FALSE );
+ return( NEW PATH );
+}
+
+
+#endif // SYSTEM_DEFN