⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 albumdb.h

📁 windows ce 程序设计书 的源代码
💻 H
字号:
//======================================================================
// Header file
//
// Written for the book Programming Windows CE
// Copyright (C) 2003 Douglas Boling
//======================================================================
// Returns number of elements
#define dim(x) (sizeof(x) / sizeof(x[0]))

//----------------------------------------------------------------------
// Generic defines and data types
//
struct decodeUINT { 							// Structure associates
	UINT Code;									// messages 
												// with a function.
	LRESULT (*Fxn)(HWND, UINT, WPARAM, LPARAM);
}; 
struct decodeCMD {								// Structure associates
	UINT Code;									// menu IDs with a 
	LRESULT (*Fxn)(HWND, WORD, HWND, WORD); 	// function.
};

//----------------------------------------------------------------------
// Generic defines used by application
#define  ID_ICON			 1					// App icon resource ID
#define  IDC_CMDBAR 		 2					// Command band ID
#define  ID_MENU			 3					// Main menu resource ID
#define  ID_LISTV			 5					// List view control ID

// Menu item IDs
#define  IDM_DELDB			 101				// File menu
#define  IDM_EXIT			 102

#define  IDM_NEW			 110				// Album menu
#define  IDM_EDIT			 111
#define  IDM_DELETE 		 112

#define  IDM_SORTNAME		 120				// Sort IDs must be 
#define  IDM_SORTARTIST 	 121				// consecutive.
#define  IDM_SORTCATEGORY	 122

#define  IDM_ABOUT			 150				// Help menu

// IDs for dialog box controls
#define  IDD_NAME			 100				// Edit album dialog.
#define  IDD_ARTIST 		 101
#define  IDD_NUMTRACKS		 102
#define  IDD_CATEGORY		 103
#define  IDD_TRACKS 		 104
#define  IDD_NEWTRACK		 105
#define  IDD_EDITTRACK		 106
#define  IDD_DELTRACK		 107

#define  IDD_TRACK			 200				// Edit track dialog.
#define  IDD_TIME			 201
//----------------------------------------------------------------------
// Program-specific structures
//
// Structure used by New/Edit Album dlg proc
#define MAX_NAMELEN 		 64
#define MAX_ARTISTLEN		 64
#define MAX_TRACKNAMELEN	 512
typedef struct {
	TCHAR szName[MAX_NAMELEN];
	TCHAR szArtist[MAX_ARTISTLEN];
	INT nDateRel;
	SHORT sCategory;
	SHORT sNumTracks;
	INT nTrackDataLen;
	TCHAR szTracks[MAX_TRACKNAMELEN];
} ALBUMINFO, *LPALBUMINFO;

// Structure used by Add/Edit album track
typedef struct {
	TCHAR szTrack[64];
	TCHAR szTime[16];
} TRACKINFO, *LPTRACKINFO;

// Structure used by GetItemData
typedef struct {
	int nItem;
	ALBUMINFO Album;
} LVCACHEDATA, *PLVCACHEDATA;

// Database property identifiers
#define PID_NAME	   MAKELONG (CEVT_LPWSTR, 1)
#define PID_ARTIST	   MAKELONG (CEVT_LPWSTR, 2)
#define PID_RELDATE    MAKELONG (CEVT_I2, 3)
#define PID_CATEGORY   MAKELONG (CEVT_I2, 4)
#define PID_NUMTRACKS  MAKELONG (CEVT_I2, 5)
#define PID_TRACKS	   MAKELONG (CEVT_BLOB, 6)
#define NUM_DB_PROPS   6
//----------------------------------------------------------------------
// Function prototypes
//
int InitApp (HINSTANCE);
HWND InitInstance (HINSTANCE, LPWSTR, int);
int TermInstance (HINSTANCE, int);

HANDLE OpenDB (HWND hWnd, LPTSTR lpszName);
HANDLE OpenCreateDB (HWND, int *);
void ReopenDatabase (HWND, INT);
int GetItemData (int, PLVCACHEDATA); 
HWND CreateLV (HWND, RECT *);
void ClearCache (void);
int ErrBox (HWND hWnd, LPTSTR lpszFormat, ...);

// Window procedures
LRESULT CALLBACK MainWndProc (HWND, UINT, WPARAM, LPARAM);

// Message handlers
LRESULT DoCreateMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoSizeMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoCommandMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoNotifyMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoDbNotifyMain (HWND, UINT, WPARAM, LPARAM);
LRESULT DoDestroyMain (HWND, UINT, WPARAM, LPARAM);

// Command functions
LPARAM DoMainCommandDelDB (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandExit (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandNew (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandEdit (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandDelete (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandSort (HWND, WORD, HWND, WORD);
LPARAM DoMainCommandAbout (HWND, WORD, HWND, WORD);

// Dialog procedures
BOOL CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK EditAlbumDlgProc (HWND, UINT, WPARAM, LPARAM);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -