preliminary group file structures

This commit is contained in:
freedom
2023-08-09 13:25:29 -06:00
parent 4cf88a12af
commit e333bec949
2 changed files with 70 additions and 7 deletions

View File

@@ -2,7 +2,7 @@
GROUP.C - GROUP.C -
Copyright (c) 2023 freedom7341, Vortesys Copyright (c) 2023 freedom7341, Vortesys
DESCRIPTION - DESCRIPTION -
Group window and program item functions. Group window and program group/item functions.
LICENSE INFORMATION - LICENSE INFORMATION -
MIT License, see LICENSE.txt in the root folder MIT License, see LICENSE.txt in the root folder
\* * * * * * * */ \* * * * * * * */
@@ -15,6 +15,9 @@
// #define WIN32_LEAN_AND_MEAN // #define WIN32_LEAN_AND_MEAN
#include <Windows.h> #include <Windows.h>
/* Variables */
WNDCLASSEX wcGrp;
/* Functions */ /* Functions */
/* * * *\ /* * * *\
@@ -31,13 +34,21 @@ LRESULT CALLBACK GroupWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
{ {
break; break;
} }
default: default:
// GrpProcDefault: // GroupProcDefault:
return DefMDIChildProc(hWnd, message, wParam, lParam); return DefMDIChildProc(hWnd, message, wParam, lParam);
} }
return 0; return 0;
} }
/* * * *\
InitGroups -
Initialize variables for the betterment of groups forever
Make great glorious MDI Client
RETURNS -
Zero if nothing, otherwise returns the good stuff.
\* * * */
/* * * *\ /* * * *\
TempCreateGroup - TempCreateGroup -
th th
@@ -53,7 +64,7 @@ HWND TempCreateGroup(HWND hMDIClient)
mcs.szTitle = L""; mcs.szTitle = L"";
mcs.hOwner = hAppInstance; mcs.hOwner = hAppInstance;
mcs.x = mcs.y = mcs.cx = mcs.cy = CW_USEDEFAULT; mcs.x = mcs.y = mcs.cx = mcs.cy = CW_USEDEFAULT;
mcs.style = WS_VSCROLL | WS_HSCROLL; mcs.style = WS_VISIBLE;
hChild = (HWND)SendMessage(hMDIClient, WM_MDICREATE, 0, (LPARAM)(LPTSTR)&mcs); hChild = (HWND)SendMessage(hMDIClient, WM_MDICREATE, 0, (LPARAM)(LPTSTR)&mcs);
// if (!hChild) // if (!hChild)

View File

@@ -2,7 +2,7 @@
GROUP.H - GROUP.H -
Copyright (c) 2023 freedom7341, Vortesys Copyright (c) 2023 freedom7341, Vortesys
DESCRIPTION - DESCRIPTION -
Program group and item structures and... stuff. Program group/item structures, functions and definitons
LICENSE INFORMATION - LICENSE INFORMATION -
MIT License, see LICENSE.txt in the root folder MIT License, see LICENSE.txt in the root folder
\* * * * * * * */ \* * * * * * * */
@@ -13,6 +13,58 @@
/* Includes */ /* Includes */
#include <wtypes.h> #include <wtypes.h>
/* Definitions */
#define MAX_GROUPS 512
#define MAX_ITEMS 512
#define MAX_TITLE_LENGTH MAX_PATH
// Group Format Definitions
#define GRP_SIGNATURE 0x47324D50L // PM2G
// Group Flag Values (DWORD)
#define GRP_FLAG_COMMON 0x00000001
#define GRP_FLAG_READONLY 0x00000002
#define GRP_FLAG_MINIMIZED 0x00000004
#define GRP_FLAG_MAXIMIZED 0x00000008
/* Structures */
// Group format, .GRP
typedef struct _GROUP {
// Group file header
DWORD dwSignature; // Set to GRP_SIGNATURE
WORD wVersion; // Group format version
WORD wChecksum;
// Group information
WCHAR szGroupName[MAX_TITLE_LENGTH];
DWORD dwFlags; // Use with GRP_FLAG_* values.
FILETIME ftLastWrite;
// Items
WORD cItems; // Number of items
PITEM iItems; // Array of items
} GROUP, * PGROUP;
// Group window information
typedef struct _GROUPWND {
// Window information
HWND hWndGroup;
RECT rcGroup; // Window rectangle
// Group information
HANDLE hGroup; // Handle to GROUP object
} GROUPINFO, * PGROUPINFO;
// Item Structure
typedef struct _ITEM {
// Item executable and name
WCHAR szItemName[MAX_TITLE_LENGTH];
WCHAR szExecPath[MAX_PATH]; // Path of the item executable
WCHAR szWorkPath[MAX_PATH]; // Working directory
// Icon
WCHAR szIconPath[MAX_PATH]; // Path of the icon
UINT uiIconIndex; // Index of the icon
} ITEM, * PITEM;
/* Function Prototypes */ /* Function Prototypes */
LRESULT CALLBACK GroupWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK GroupWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
HWND TempCreateGroup(HWND hMDIClient); HWND TempCreateGroup(HWND hMDIClient);