我是一名 Web 开发人员,几乎没有 COM 编程背景;我想开发一个属性表以允许另一个部门通过 ADUC 更改缩略图。
到目前为止,我已经制作了所有脚本来注册 DLL 并将其添加到我用我找到的预编译 DLL 测试的 ADUC,所以唯一剩下的就是实际制作 DLL 本身。
通过研究,我发现如果我使用 C++,我需要实现 IShellExtInit 和 IShellPropSheetExt 类;我真的很想知道如何在 C# 中做到这一点,但是先学习哪个更容易会更好,然后我可以尝试自己学习另一种语言。
任何人都可以指出一些工作代码示例或教程的方向吗?我所发现的只是更多的理论,而且我从以下教程中学到了很多东西,所以这将是一个很大的帮助!
到目前为止,我制作了以下外壳,请让我知道它是否已关闭,但由于我对 COM 的了解有限,这就是我目前所写的全部内容。
#include "stdafx.h"
#include <ShObjIdl.h>
class PropPage : IShellExtInit, IShellPropSheetExt
{
/////////////////////////
//IShellExtInit methods//
/////////////////////////
HRESULT Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID)
{
return S_OK;
}
//////////////////////////////
//IShellPropSheetExt methods//
//////////////////////////////
HRESULT AddPages(LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam)
{
return S_OK;
}
HRESULT ReplacePage(UINT uPageID, LPFNADDPROPSHEETPAGE pfnReplacePage, LPARAM lParam)
{
return S_OK;
}
/////////////////
//Misc. methods//
/////////////////
};
PS 当我有更多内容时,我会将其拆分为 cpp 和标头,但是虽然我不知道自己在做什么,但将其全部包含在 cpp 中会更容易