?? resource.h
字號:
/***************************************************************************** ------------ 子系統名稱: 界面資源管理器* RESOURCE.H* ------------ 模塊名稱 : 資源索引及IO管理程序****************************************************************************/#ifndef _RESOURCE_H#define _RESOURCE_H#include "typedef.h"#include "strtbl.h"#include "menu.h"#include "dialog.h"/* 資源類型定義 Resource type define */#define RT_STRTBL 1 /* 窗口 */#define RT_MENU 2 /* 菜單 */#define RT_DIALOG 3 /* 對話框 *//* 資源錯誤信息標識號 Resource error ID */#define ERR_RES_INVALIDFILE -1010 /* 非法的資源文件 */#define ERR_RES_INVALIDID -1011 /* 無效的資源標識號 */#define ERR_RES_FULL -1012 /* 資源索引表滿 *//* 資源結構定義 Resource structure define */typedef struct tagResource{ short nRESID; /* 資源識別號 */ short nType; /* 資源類型 */ void *pRES; /* 資源緩沖區地址 */ DWORD lRESOffset; /* 資源數據在文件中的絕對位置 */ DWORD lNextOffset; /* 下一索引在文件中的絕對位置 */} RESOURCE;typedef RESOURCE * PRESOURCE;/* 資源文件頭結構定義 Resource file header structure define */#define MAXL_VERTEXT 20typedef struct tagRESFileHead{ char pVersion[MAXL_VERTEXT]; /* 版本信息 */ short nCount; /* 資源總數 */ BYTE nAddNum; /* 累加和 */} RESFILEHEAD;typedef RESFILEHEAD * PRESFILEHEAD;/* 全局變量定義 */extern FILE * pfResFile; /* 資源文件指針 */extern RESFILEHEAD rfhRESFileHead; /* 資源文件頭 */extern PRESOURCE prRESTable; /* 資源索引表 */extern char pRESVersion[MAXL_VERTEXT]; /* 標準版本信息 *//**************************************************************************** 接 口 函 數 原 型***************************************************************************//***************************************************************************** 函數原型: NewResource ( PRESOURCE *prNew, short nCount )** 功 能: 創建 nCount 個資源索引項** 編程人員: Zhu haibin** 編碼時間: 1994/09/13** 修改時間:** 入口參數: PRESOURCE prNew -- 資源項指針** 出口參數: OK 調用成功* ERR_NOMEMORY 沒有足夠的內存** 實現算法: 調用 malloc 申請內存** 上層調用:** 下層調用:****************************************************************************/extern short NewResource ( PRESOURCE *pprNew, short nCount );/***************************************************************************** 函數原型: FreeResource ( short nRESID )** 功 能: 釋放一個資源** 編程人員: Zhu haibin** 編碼時間: 1994/09/13** 修改時間:** 入口參數: PRESOURCE presTemp -- 資源項指針** 出口參數: OK 調用成功* ERR_RES_INVALIDID 無效的資源標識號** 實現算法: 1. 查找指定的標識號* 2. 釋放所對應的資源** 上層調用:** 下層調用: FreeMenu* FreeDialog****************************************************************************/extern short FreeResource ( short nRESID );/***************************************************************************** 函數原型: short CreatRESFile ( char * pFileName )** 功 能: 創建一個資源文件** 編程人員: Zhu haibin** 編碼時間: 1994/09/14** 修改時間:** 入口參數: char *pFileName -- 資源文件名** 出口參數: OK 調用成功* ERR_CFILE 創建文件錯** 實現算法: 調用 fopen 創建文件** 上層調用:** 下層調用: 無****************************************************************************/extern short CreatRESFile ( char * pFileName );/***************************************************************************** 函數原型: OpenRESFile ( char *pFileName )** 功 能: 打開一個已存在的資源文件, 檢查其合法性, 讀入資源索引** 編程人員: Zhu haibin** 編碼時間: 1994/09/14** 修改時間:** 入口參數: char *pFileName -- 資源文件名** 出口參數: OK 調用成功* ERR_OFILE 打開文件失敗* ERR_RFILE 讀文件失敗** 實現算法: 1. 以只讀方式打開文件* 2. 讀入文件頭并檢查其合法性* 3. 讀入資源索引** 上層調用:** 下層調用: NewResource****************************************************************************/extern short OpenRESFile ( char *pFileName );/***************************************************************************** 函數原型: CloseRESFile ( BOOL nWriteHead )** 功 能: 關閉資源文件** 編程人員: Zhu haibin** 編碼時間: 1994/09/14** 修改時間:** 入口參數: BOOL nWriteHead -- 是否需要重新寫入文件頭** 出口參數: OK 調用成功* ERR_WFILE 寫文件失敗** 實現算法: 1. 如果要重寫文件頭:* A 調整文件, 使文件頭部空出文件頭和索引表的空間* B 計算累加和* C 寫入文件頭* 2. 調用 fclose 關閉文件** 上層調用:** 下層調用: 無****************************************************************************/extern short CloseRESFile ( BOOL nWriteHead );/***************************************************************************** 函數原型: LoadResource ( short nRESID, void **ppRES )** 功 能: 從資源文件中讀取標識號為 nRESID 的資源** 編程人員: Zhu haibin** 編碼時間: 1994/09/15** 修改時間:** 入口參數: short nRESID 資源標識號* void **ppRES 資源地址** 出口參數: OK 調用成功, 資源指針返回在 ppRES 中* ERR_RES_INVALIDID 無效的資源識別號* ERR_RFILE 讀文件失敗* ERR_NOMEMORY 沒有足夠的內存** 實現算法: 1. 在資源索引表中查找指定的識別號 nRESID* 2. 讀出資源** 上層調用:** 下層調用: 無****************************************************************************/extern short LoadResource ( short nRESID, void **ppRES );/***************************************************************************** 函數原型: AppendResource ( PRESOURCE prTemp )** 功 能: 向資源文件中追加一個資源** 編程人員: Zhu haibin** 編碼時間: 1994/09/15** 修改時間:** 入口參數: PRESOURCE prTemp -- 資源指針** 出口參數: OK 調用成功* ERR_WFILE 寫文件失敗** 實現算法: 1. 寫入資源索引項* 2. 寫入資源數據** 上層調用:** 下層調用: 無****************************************************************************/extern short AppendResource ( PRESOURCE prTemp );/***************************************************************************** 函數原型: LoadStrTblResource ( void )** 功 能: 裝入所有字符串表資源** 編程人員: Zhu haibin** 編碼時間: 1994/10/05** 修改時間:** 入口參數: PRESOURCE prTemp -- 資源指針** 出口參數: OK 調用成功* ERR_WFILE 寫文件失敗** 實現算法: 1. 寫入資源索引項* 2. 寫入資源數據** 上層調用:** 下層調用: 無****************************************************************************/extern short LoadStrTblResource ( void );/***************************************************************************** 函數原型: LoadString ( short nID, char *pBuf, short nBufSize )** 功 能: 從字符串表資源中取出指定字符串** 編程人員: Zhu haibin** 編碼時間: 1994/10/05** 修改時間:** 入口參數: short nID -- 字符串標識號* char *pBuf -- 字符串緩沖區* short nBufSize -- 字符串緩沖區長度** 出口參數: 總為 OK** 實現算法:** 上層調用: FreeResource** 下層調用: 無****************************************************************************/extern short LoadString ( short nID, char *pBuf, short nBufSize );#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -