vc ATL 外壳编程添加windows右键菜单

来源:互联网 发布:sql 2008 r2 64位下载 编辑:程序博客网 时间:2024/06/05 21:01

程序在

http://www.programbbs.com/doc/473.htm

这个网页里面说了具体的流程,但好像通过上面网页的方法好像在vc中有点编译不过去,加了头文件也不行。

这个程序在codeproject上面有,我也已经上传了,具体的流程和网页中的大致是一样的

程序的功能是:类似于winrar的功能,你右键单击一个文件,在弹出的右键菜单中添加了一个选项,可以在弹出的右键菜单选项中实现具体的功能。

例如,我添加的是:右键单击txt文件,在弹出的菜单中添加了一项,点击这一项之后弹出一个对话框显示当前txt的文件名。

如果你不想再txt的右键菜单添加这一项,而是其他的文件格式,则修改工程中的SimpleShlExt.rgs这个文件,打开这个文件,可以看到文件的内容如下:

HKCR

{

    NoRemove CLSID

    {

        ForceRemove {5E2121EE-0300-11D4-8D3B-444553540000} = s 'SimpleShlExt Class'

        {

            InprocServer32 = s '%MODULE%'

            {

                val ThreadingModel = s 'Apartment'

            }

        }

    }

    NoRemove txtfile

    {

        NoRemove ShellEx

        {

            NoRemove ContextMenuHandlers

            {

                ForceRemove SimpleShlExt = s '{5E2121EE-0300-11D4-8D3B-444553540000}'

            }

        }

    }

}

这个文件具体的内容我也不是很明白,但NoRemove txtfile这里很关键,这个txtfile是注册表中HKEY_CLASSES_ROOT子项中的一项,注册表必须要有这一项,运行这个程序后才能将txt文件的右键菜单添加一项。如果注册表中没有这一项,需要在注册表中添加这一项,我博客中有文档讲到,代码也已经上传了,就不再多说。

但这个程序是一个ATL的工程,生成的是一个dll文件,我对ATL一点都不了解,本来还想把这个工程添加到我的MFC的工程中去,但是最后不知道如何在我们的代码中调用这个工程的函数或是借口而不了了之,望有能者赐教也。

下面是一些ATL的程序文档,感觉还是很有用的。

http://www.vckbase.com/document/viewdoc/?id=682

http://blog.sina.com.cn/s/blog_4baa485201000938.html

http://www.vckbase.com/document/viewdoc/?id=211

 

 

 

 

原创粉丝点击