summaryrefslogtreecommitdiffstats
path: root/src/VBox/Installer/win/StubBld/VBoxStubBld.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Installer/win/StubBld/VBoxStubBld.h')
-rw-r--r--src/VBox/Installer/win/StubBld/VBoxStubBld.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/VBox/Installer/win/StubBld/VBoxStubBld.h b/src/VBox/Installer/win/StubBld/VBoxStubBld.h
new file mode 100644
index 00000000..bfe3d235
--- /dev/null
+++ b/src/VBox/Installer/win/StubBld/VBoxStubBld.h
@@ -0,0 +1,69 @@
+/* $Id: VBoxStubBld.h $ */
+/** @file
+ * VBoxStubBld - VirtualBox's Windows installer stub builder.
+ */
+
+/*
+ * Copyright (C) 2009-2019 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+#ifndef VBOX_INCLUDED_SRC_StubBld_VBoxStubBld_h
+#define VBOX_INCLUDED_SRC_StubBld_VBoxStubBld_h
+#ifndef RT_WITHOUT_PRAGMA_ONCE
+# pragma once
+#endif
+
+#define VBOXSTUB_MAX_PACKAGES 128
+
+typedef struct VBOXSTUBPKGHEADER
+{
+ /** Some magic string not defined by this header? Turns out it's a write only
+ * field... */
+ char szMagic[9];
+ /* Inbetween szMagic and dwVersion there are 3 bytes of implicit padding. */
+ /** Some version number not defined by this header? Also write only field.
+ * Should be a uint32_t, not DWORD. */
+ DWORD dwVersion;
+ /** Number of packages following the header. byte is prefixed 'b', not 'by'!
+ * Use uint8_t instead of BYTE. */
+ BYTE byCntPkgs;
+ /* There are 3 bytes of implicit padding here. */
+} VBOXSTUBPKGHEADER;
+typedef VBOXSTUBPKGHEADER *PVBOXSTUBPKGHEADER;
+
+typedef enum VBOXSTUBPKGARCH
+{
+ VBOXSTUBPKGARCH_ALL = 0,
+ VBOXSTUBPKGARCH_X86,
+ VBOXSTUBPKGARCH_AMD64
+} VBOXSTUBPKGARCH;
+
+typedef struct VBOXSTUBPKG
+{
+ BYTE byArch;
+ /** Probably the name of the PE resource or something, read the source to
+ * find out for sure. Don't use _MAX_PATH, define your own max lengths! */
+ char szResourceName[_MAX_PATH];
+ char szFileName[_MAX_PATH];
+} VBOXSTUBPKG;
+typedef VBOXSTUBPKG *PVBOXSTUBPKG;
+
+/* Only for construction. */
+/* Since it's only used by VBoxStubBld.cpp, why not just keep it there? */
+
+typedef struct VBOXSTUBBUILDPKG
+{
+ char szSourcePath[_MAX_PATH];
+ BYTE byArch;
+} VBOXSTUBBUILDPKG;
+typedef VBOXSTUBBUILDPKG *PVBOXSTUBBUILDPKG;
+
+#endif /* !VBOX_INCLUDED_SRC_StubBld_VBoxStubBld_h */