内容摘要:本文详述了如何为金山虚拟光驱软件进行浏览器上下文菜单扩展.通过扩展,你可以直接通过鼠标右击虚拟光驱盘符来插入或者弹出虚拟光盘文件,也可以通过右击虚拟光盘文件(*.ISO)来将它直接插入某个虚拟光盘内。
该结构结构包含很多函数。其中有一些没有用到的,不知道其具体含义。而那些有具体名字的,都是已经经过调试分析得到其具体功能和入口参数的,所有的函数都以KVD_ENTRY这个结构指针为第一个入口参数。
函数Release在金山虚拟光驱管理器退出的时候被调用,估计是做一些内存清理工作的。在我们的程序里,也模拟这样的操作,在COM被卸载的时候调用这个函数。
函数AddDriver用来向系统中添加一个新的虚拟光驱。在本程序内没有用到。
函数InsertDisk的功能就是将一张虚拟光盘(文件)插入虚拟光驱内,函数的第二个参数为虚拟光驱的盘符;函数的第三个参数为虚拟光盘文件的路径。
函数PopDisk的功能即是将指定虚拟光盘内的光盘文件弹出,第二个参数为虚拟光驱盘符。
函数IsKVD用来判断指定的盘符是否为一个金山虚拟光驱,第二个参数为虚拟光驱盘符。
函数GetFileNameInDriver得到指定的虚拟光盘内是否有光盘以及光盘文件的路径。函数的第二个参数为虚拟光驱的盘符,第三个参数为一个指针。指向一个预先分配好的缓冲区。缓冲区结构定义如下:
typedef struct _kvd_buf
{
DWORD dwSize;
DWORD dw1; // 标志(1/0)
DWORD dw2;
char path[256]; // 返回文件名
DWORD dw3;
} KVD_BUF;
dw1返回一个标志,0或者1,如果返回的是0,则表示虚拟光驱内没有光盘。如果是1,则表示光驱内有光盘。虚拟光盘文件的路径将放入path内。
以上介绍的这些函数和数据结构就是下面的程序里需要用到的。当然kscdrush.dll的功能远不止这些,但其它的与本文无关了。
责编:豆豆技术应用