轉載今天又被抓去做了一個windows media service的授權外掛程式,基本步驟記下來全作備忘:
下載完platform sdk
從media server的C:\WINDOWS\system32\windows media\server目錄下面把Microsoft.WindowsMediaServices.DLL拷貝到自己的開發機器上.
建一個c#的class library項目,引用剛才的dll.
給類加上GUID的屬性
授權外掛程式的介面為:IWMSBasicPlugin和IWMSEventAuthorizationPlugin,然後開啟class view,把這兩個介面實現,修改IWMSEventAuthorizationPlugin介面的代碼.
實現ComRegisterFunctionAttribute的register和unregister方法.
編碼時注意運行media service的帳號為network service,可能會因此遇到許可權不夠的問題,可以通過修改運行media service的帳號或者針對特殊資源增加network service的存取權限來進行
把產生的外掛程式dll 放到media server的C:\WINDOWS\system32\windows media\server的目錄下,運行C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\RegAsm.exe進行註冊
整個過程還算順利,方案設計到編碼測試也就半天時間就完成了,可是明天的任務已經派滿了,後天再實施咯
有點沒明白的事情:
media service management到底如何根據註冊表的項目來分類外掛程式
我只設定了SOFTWARE\\Microsoft\\Windows Media\\Server\\RegisteredPlugins\\Event Notification and Authorization\\的項目,因此外掛程式出現在事件通知一欄裡,這本來也沒什麼奇怪的,但是授權外掛程式並沒有自己單獨的登錄機碼的目錄,也是在Event Notification and Authorization,而且子項也沒有看到同通知外掛程式有什麼區別.隨便設定了一個SubCategory為Authorize的子項,也沒有什麼效果