亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sdk.txt

?? Award bios編輯器
?? TXT
字號(hào):
Award BIOS Editor 1.0 Plug-in SDK
=================================

This is the documentation outlining the SDK to create your own plug-ins for the
Award BIOS Editor.  The source code for the Wavedit plug-in is a good place to use
as a starting template, as the SDK documentation is pretty sparse right now.  :)

Note that this is the original 1.0 SDK API.  The next release of the Award BIOS
Editor will not use the _exact_ same API -- but it should be fairly similar.
Plug-ins which use the old API will need to be ported to the new API, and I will
try to make the transition easy.

You will need the following three files to build your plug-in:

	- awdbe_wavedit\types.h		Some basic typedefs used by the plug-in system
	- awdbedit\awdbe_exports.h	The main include necessary to access the API
	- awdbedit.lib			The library needed to link against to access the API

The awdbedit.lib library is automatically built along with the EXE when you compile the 
Award BIOS Editor sources.


The Award BIOS Editor API
-------------------------

The Award BIOS Editor is built around detection of component IDs within the BIOS image.
Each component is LZH compressed, and each component has a 16-bit ID.  Your plug-in can
either be designed to work on any ID (or a subset of IDs) whose data is recognizable,
or work directly on an ID (as its format is already pre-determined).  In cases where
the ID is unknown, your plug-in can register its type in the OnLoad() function by
iterating through the list of components and checking to see if any component's data
is recognized.

You will need to build an item list structure which tells the Editor what IDs your plug-in
supports.  Using the wavedit plug-in as an example:

awdbeItem waveditItemList[] = {
	{ 0, AWDBE_ITEM,	0x4012, "Startup WAVE sound[0]",	0 },
	{ 0, AWDBE_ITEM,	0x4013, "Startup WAVE sound[1]",	0 },
	{ 0, AWDBE_ITEM,	0x4014, "Startup WAVE sound[2]",	0 },
	{ 0, AWDBE_ITEM,	0x4015, "Startup WAVE sound[3]",	0 },
	{ 0, AWDBE_ITEM,	0x4016, "Startup WAVE sound[4]",	0 },
	{ 0, AWDBE_ITEM,	0x4017, "Startup WAVE sound[5]",	0 },
	{ 0, AWDBE_ITEM,	0x4018, "Startup WAVE sound[6]",	0 },
	{ 0, AWDBE_ITEM,	0x4019, "Startup WAVE sound[7]",	0 }
};

This item list structure is defined as such:

typedef struct
{
	ulong		 hash;		// the unique 32-bit hash value of this item

	ulong		 flags;		// any of the AWDBE_* flags below
	ushort		 biosTypeID;	// the 16-bit type ID of the component to be recognized
	char		*itemName;	// a descriptive name of this item
	ulong		 userData;	// any 32-bit user storable data
} awdbeItem;

The item list's "hash" value is used internally by the Editor.  Initialize it to 0.

The "flags" value allows a combination of values in order to determine how the "itemName"
description is shown in the tree view.  If the value is simply AWDBE_ITEM, the description
is shown in the root of the tree.  If you wish to create a subfolder to insert items, create
an item with a AWDBE_SUBMENU flag.  Note that the "biosTypeID" is not used in this instance.
To insert items under the subfolder, use the AWDBE_SUBITEM flag.  If you wish to make a
different folder, simply create another item with the AWDBE_SUBMENU flag, and subsequent
items with the AWDBE_SUBITEM flag.

If your plug-in adds support for a BIOS component ID that is includable and can be added
to a BIOS image, OR in the AWDBE_INCLUDABLE bit.  The wavedit plug-in does not use this
flag because it detects data in the already defined OEM ROM groups.  Including a WAVE sound
in a BIOS image that does not support WAVE playback on BIOS startup is not exactly useful,
hence the reason the AWDBE_INCLUDABLE bit is not used.

The "biosTypeID" value is the 16-bit value used to identify which BIOS component should be
handled by your plug-in.

The "itemName" member is any description you wish to use to describe that particular item,
and the "userData" value is any 32-bit value which you may use for your internal data.


The API function list
---------------------

	void awdbeAddToItemList(ulong pluginID, awdbeItem *itemList, int itemCount);
	
This function inserts your item list into the Award BIOS Editor's internal item table.
Pass it the plug-in ID which was given to your plug-in on initialization, as well as
a pointer to the item list and the count of items.  This function may be called more
than once, if you wish to register multiple sets of items -- however, items which
have already been registered should not be added again.


	fileEntry *awdbeSearchForID(ulong pluginID, ushort ID);
	
This function searches for a particular type ID inside the currently loaded BIOS.  If
it is found, the returned fileEntry pointer points to a valid entry, otherwise it
returns NULL.


	void awdbeUpdateSelf(ulong pluginID);
	
This function tells the Editor to call your internal update function to commit changes
to the data.  This is used in the wavedit plugin when the "Play" button is pressed,
because the controls in the dialog may have been changed.  For example, if the sample
rate control's data is changed from 22050 to 44100, and the "Play" button is pressed,
this function is called to write back the modified controls data to memory, and then
the WAVE is played.  If this function is not called, pressing the "Play" button will
only play the sample at 22050 because the data has not been updated.

	
	void awdbeRefreshSelf(ulong pluginID);
	
This function tells the Editor to call your internal refresh function to update your
controls with new data.  This function is useful when one control's data has changed
which can affect the data of another control.


	void awdbeGetDialogSize(ulong pluginID, SIZE *sz);
	
This function returns the size of your client dialog in window units.


	void awdbeResizeDialog(ulong pluginID, SIZE sz);
	
This function tells the Editor to resize your dialog to the specified window units.
The built-ins plugin uses this in the EPA and fullscreen bitmap viewer to ensure that
the entire bitmap can be shown on screen.

	
	void awdbeSetModified(ulong pluginID);
	
This function sets the modified flag in the Editor, causing a '*' mark to appear next
to the filename in the title bar.


	int awdbeDoPopup(HINSTANCE hinst, LPSTR resid, int xp, int yp);
	
This function creates a popup window which follows the same design as the drop-down
menus in the Editor.  Pass it the instance handle of your plugin, the resource ID of
a menu resource, and the x and y offsets (within your client dialog), and the return
value will be the item which the user has selected, or 0 if the menu was closed (ie:
the user clicked outside the menu area).


	awdbeBIOSVersion awdbeGetBIOSVersion(ulong pluginID);
	
This function returns the version of the currently loaded BIOS image.  This can be any
of "awdbeBIOSVerUnknown" (an unknown version), "awdbeBIOSVer451PG" (v4.51PG), 
"awdbeBIOSVer600PG" (v6.00PG), or "awdbeBIOSVer60" (Phoenix-type v6.0).


Registering your plug-in
------------------------

Upon startup, the Award BIOS Editor scans the current and all subdirectories looking
for any DLLs.  If a DLL is found, a pointer to the "awdbeRegisterPlugin" function is
checked for.  If that function exists, the Editor assumes your plug-in is valid, and
calls this function to get a list of pointers to functions which will be called by
the Editor.  Your "awdbeRegisterPlugin" function should simply return a pointer to an
"awdbeFuncTable" filled out with the functions used in your code.  DllMain() is not
used by the Award BIOS Editor.


The function table
------------------

Your plug-in must support 10 different functions which will be called by the Editor.
Note that the functions in the function table *must* point to a valid function, even
if your plug-in does not plan to use that particular function.  In other words, you
cannot specify NULL for a function pointer.  Simply create a function which does
nothing and returns immediately.

A typical function table should look like the following:  (Note, I'm using the Wavedit
plug-in as an example)

awdbeFuncTable waveditTable = {
	waveditDescription,
	waveditAboutBox,

	waveditInit,
	waveditOnLoad,
	waveditDetect,
	
	waveditCreateDialog,
	waveditUpdateDialog,
	waveditRefreshDialog,
	waveditOnDestroyDialog,

	waveditOnResizeDialog
};


The description function
------------------------

	char *waveditDescription(void);
	
This function should simply return a small string describing your plug-in.  This
string is also used in the Help->About Plugins menu.


The about box function
----------------------

	void waveditAboutBox(HWND parentWnd);
	
This function is called when the user wants to view your about box.  The parentWnd
handle is a handle to a window you can use as a parent window.


The init function
-----------------

	void waveditInit(ulong pluginID);
	
This function is called when your plug-in is to be initialized.  The pluginID parameter
is a unique ID which is used to identify your plug-in.  It is also required when
calling any of the API functions.

Your init function will usually call the awdbeAddToItemList() API function.  See above
for a description on this function.


The onLoad function
-------------------

	void waveditOnLoad(fileEntry *fe, int count);

This function is called when a BIOS image is loaded.  The fileEntry pointer is an array
of fileEntry structures, each which represent a single component within the BIOS.
"count" specifies the total number of components within the image.

Typically you will use this function to update your item table based on any content or
data found in a particular component.


The detect function
-------------------

	bool waveditDetect(fileEntry *fe);
	
This function is called after the BIOS image is loaded.  Each component in the BIOS is
checked through this detect function, and each plug-in is called until one returns TRUE.
If no plug-in responds with TRUE, then the component is shown under the "Unknown Items"
group in the tree view.

If your plug-in understands the data or format type of this particular component, then
return TRUE.  Otherwise, return FALSE.


The create dialog function
--------------------------

	HWND waveditCreateDialog(awdbeItem *item, fileEntry *fe, HWND parentWnd, RECT *rc);
	
This function is called when the user has clicked on an item in the tree that your plug-in
has responded TRUE to in the detection phase.  When this function is called, your plug-in
needs to create a dialog that will be shown in the right pane, and return a handle to it.

For reference purposes, the "item" parameter is a pointer to the item clicked on in the tree,
"fe" is a pointer to the fileEntry component, "parentWnd" is a handle to a valid parent
window, and "rc" is the rectangle (in screen coordinates) at which your dialog will be
created.


The update dialog function
--------------------------

	bool waveditUpdateDialog(awdbeItem *item, fileEntry *fe, HWND dialogWnd);
	
The update dialog function is called when the Award BIOS Editor is requesting your plug-in
to modify the current components' data with any controls that may have changed in your
dialog.

When this function is called, you will need to make any changes to the data pointer passed
through the "fe" structure.  If any data has been changed, return TRUE so that the Award
BIOS Editor knows that data has been changed (a '*' mark will appear next to the filename
in the title bar to indicate this).  If no data has changed, return FALSE.


The refresh dialog function
---------------------------

	void waveditRefreshDialog(awdbeItem *item, fileEntry *fe, HWND dialogWnd);
	
The refresh dialog function is called when the Award BIOS Editor is requesting your plug-in
to refresh the current dialogs' data with the data stored in the component.  This function
is typically only called when the user "swaps out" component data with a new file.

If any changes have been made to your controls' data, discard it and refresh the data in
the controls with the new data.


The onDestroy dialog function
-----------------------------

	void waveditOnDestroyDialog(awdbeItem *item, HWND dialogWnd);

This function is called when your dialog is to be destroyed.  It is your plug-in's job to
call DeleteWindow() on the main dialog, and cleanup any child windows that may have been
created.


The onResize dialog function
----------------------------

	void waveditOnResizeDialog(awdbeItem *item, HWND dialogWnd, RECT *rc);

This function is called when the main application is being resized, or the splitter bar
is being moved.  The rectangle "rc" is given as a size, such that the left and top
components are 0 and the right and bottom components represent the new size of the dialog.


For more help
-------------

I understand this documentation is a bit lacking, but hopefully I've covered the main points
enough to get you started.  Using this along with the sample wavedit source, you should be
able to build a plug-in for the Award BIOS Editor.

If there is something you don't understand, or need more help, please visit the Public Forums
at http://sourceforge.net/projects/awdbedit/ and post a message in the Plugin Developer 
Assistance forum.  I will be happy to help you out with any issues you may have.

If you do end up creating a plug-in for the Award BIOS Editor, please let me know!  If it's
useful, I can integrate it into our source tree so everyone can use it.

Good luck!

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
5月丁香婷婷综合| youjizz久久| 一区二区三区在线不卡| 国产精品系列在线| 中文字幕一区二区三区av| 亚洲国产精品黑人久久久| 国产精品视频看| 亚洲六月丁香色婷婷综合久久| 中文字幕一区二区不卡| 夜夜嗨av一区二区三区中文字幕| 亚洲精品视频在线观看网站| 亚洲综合色丁香婷婷六月图片| 亚洲午夜影视影院在线观看| 日本不卡一区二区| 国内精品国产成人| 成人18视频日本| 欧美日韩一区二区三区在线| 69精品人人人人| 久久亚洲二区三区| 1024成人网| 蜜臂av日日欢夜夜爽一区| 国产尤物一区二区在线| 99re成人精品视频| 欧美日韩免费高清一区色橹橹| 日韩一级大片在线| 中文字幕五月欧美| 日韩极品在线观看| 成人激情文学综合网| 欧美日韩精品系列| 欧美激情一区二区三区| 午夜国产精品影院在线观看| 国产99一区视频免费| 91福利国产精品| 精品日韩av一区二区| 亚洲欧美日韩中文字幕一区二区三区| 午夜日韩在线电影| 国产经典欧美精品| 欧美日本一道本在线视频| 国产欧美日韩三级| 男女激情视频一区| 色欧美片视频在线观看| 欧美国产精品中文字幕| 天堂影院一区二区| 91天堂素人约啪| 国产欧美日韩不卡| 紧缚捆绑精品一区二区| 精品视频在线免费| 图片区小说区国产精品视频| 国产91精品久久久久久久网曝门| 欧美三级电影网| 中文字幕中文在线不卡住| 久久精品国产99国产| 欧美揉bbbbb揉bbbbb| 国产精品美女久久久久高潮| 精品影视av免费| 91麻豆精品国产91久久久久久久久 | 精彩视频一区二区| 欧美日韩亚洲综合一区二区三区| 国产精品久久久久久久久久免费看| 美女看a上一区| 777午夜精品免费视频| 一片黄亚洲嫩模| 色老头久久综合| 中文字幕日韩欧美一区二区三区| 国产在线精品一区二区三区不卡 | 久久九九全国免费| 美日韩一区二区| 日韩精品在线一区| 久久成人av少妇免费| 日韩精品最新网址| 久久黄色级2电影| 日韩欧美高清dvd碟片| 久久草av在线| 久久久99精品免费观看| 岛国av在线一区| 国产精品另类一区| 91在线精品一区二区三区| 亚洲欧洲av一区二区三区久久| 国产风韵犹存在线视精品| 久久亚洲综合色| 成年人网站91| 亚洲综合丁香婷婷六月香| 在线视频你懂得一区二区三区| 一区二区在线免费观看| 欧美剧在线免费观看网站 | 色域天天综合网| 夜夜嗨av一区二区三区网页| 欧美高清视频在线高清观看mv色露露十八| 亚洲国产中文字幕在线视频综合| 欧美午夜寂寞影院| 免费人成黄页网站在线一区二区| 精品精品国产高清一毛片一天堂| 国产另类ts人妖一区二区| 国产精品久久久久一区二区三区 | 在线观看不卡视频| 日韩不卡免费视频| 国产亚洲综合在线| 一本久久精品一区二区 | 精品精品国产高清a毛片牛牛| 国产一区视频在线看| 成人免费一区二区三区视频| 欧美精品视频www在线观看| 国产尤物一区二区| 国产一区二区0| 亚洲日本一区二区| 欧美大片在线观看一区二区| 不卡的av网站| 奇米影视7777精品一区二区| 亚洲精品一区二区三区福利| 色乱码一区二区三区88| 日韩一区二区三区免费看| 国产日韩欧美精品在线| 91欧美一区二区| 日本午夜精品视频在线观看 | 亚洲欧美日韩系列| 91精品一区二区三区久久久久久| 福利一区二区在线| 日韩高清欧美激情| 亚洲天堂a在线| 国产丝袜欧美中文另类| 欧美精品久久久久久久久老牛影院| 国产福利91精品一区二区三区| 亚洲第一激情av| 国产精品美女久久久久久久网站| 制服丝袜亚洲播放| 在线一区二区三区做爰视频网站| 国产一区二区三区在线观看免费视频 | 日韩欧美你懂的| 在线观看国产一区二区| 99久久777色| 国产91精品露脸国语对白| 精品亚洲porn| 另类综合日韩欧美亚洲| 亚洲国产精品一区二区久久恐怖片| 国产精品区一区二区三区| 日韩限制级电影在线观看| 欧美天堂一区二区三区| 精品亚洲porn| 福利电影一区二区| 亚洲综合丁香婷婷六月香| 国产欧美日韩视频一区二区| 日韩一区二区在线免费观看| 欧美性视频一区二区三区| 91在线观看美女| 91欧美一区二区| 91久久精品一区二区| 91在线国产福利| 99久久精品免费看国产| 99视频超级精品| 色综合色狠狠天天综合色| 91亚洲精华国产精华精华液| 成人黄页毛片网站| 99精品视频一区二区| 91国偷自产一区二区三区观看| 一本到三区不卡视频| 欧美在线你懂得| 69成人精品免费视频| 精品久久一区二区| 国产欧美精品区一区二区三区 | 国产精品国产三级国产普通话蜜臀| 久久午夜国产精品| 国产精品午夜在线| 亚洲免费在线播放| 石原莉奈一区二区三区在线观看| 丝袜美腿一区二区三区| 蜜桃av一区二区三区| 精久久久久久久久久久| 成人免费观看视频| 91官网在线免费观看| 91麻豆精品国产91久久久使用方法 | 亚洲精品国产一区二区精华液 | 免费看黄色91| 国产精品资源在线| 91麻豆精品秘密| 欧美挠脚心视频网站| 久久综合av免费| 亚洲天堂av老司机| 日韩黄色小视频| 成人午夜av电影| 欧美色图12p| 久久久久久久久久久99999| 国产精品麻豆一区二区| 香蕉成人啪国产精品视频综合网| 国产精一区二区三区| 色婷婷综合久久久久中文一区二区| 欧美人伦禁忌dvd放荡欲情| 久久九九全国免费| 五月天视频一区| 99久久精品99国产精品| 欧美一级理论性理论a| 日本一二三四高清不卡| 免费成人性网站| 一本大道av一区二区在线播放| 精品久久久久香蕉网| 亚洲综合在线第一页| 懂色中文一区二区在线播放| 欧美巨大另类极品videosbest | 懂色av一区二区三区免费观看| 色婷婷香蕉在线一区二区| 26uuu精品一区二区|