FDRM(File-Based Digital Rights Management)是微软指定的一套DRM接口规范,包含13个API接口。
1、FileDrmIsDRM 判断一个文件是否是是DRM对象
HRESULT FileDrmIsDRM (LPCTSTR pszFile,
PBOOL pfDRM);
2、FileDrmCreateFile 创建一个FDRM的内容文件
HRESULT FileDrmCreateFile (LPCTSTR pszFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile,
PHANDLE phFile);
调用方式同CreateFile一样,不过需要注意的是参数里的dwDesiredAccess只能为GENERIC_READ,因为DRM对象都是被保护对象,对应用程序只读。同样,dwCreationDisposition只能为OPEN_EXISTING。
3、FileDrmCreateForwardableContent 创建一个用于转发的DRM文件
HRESULT FileDrmCreateForwardableContent (LPCTSTR pszFileName,
DWORD dwFlags,
LPCTSTR pszOutputFile);
4、FileDrmNotifyEnable 打开FDRM提醒
HRESULT FileDrmNotifyEnable (LPCTSTR pszFileName,
LPTSTR pszValueName,
DWORD cchValueNameLen);
5、FileDrmNotifyDisable 关闭FDRM提醒
HRESULT FileDrmNotifyDisable (LPCTSTR pszFileName);
6、FileDrmShowLicenseInfo 显示DRM对象权限信息
HRESULT FileDrmShowLicenseInfo (HWND hwndParent,
LPCTSTR pszFileName);
7、FileDrmHandleError 显示错误信息
HRESULT FileDrmHandleError (HWND hwndParent,
HRESULT hrError,
LPCTSTR pszFileName,
DWORD dwFlags,
PDWORD pdwStatus);
8、FileDrmRenewRights 获取新的DRM对象权限
HRESULT FileDrmRenewRights (HWND hwndParent,
LPCTSTR pszFileName);
一般情况下会通过网络获取新权限。
9、FileDrmGetMetric 获取度量值
HRESULT FileDrmGetMetric (FDRMMETRIC drmID,
DWORD *pdwMetric);
10、FileDrmVerifyRights 校验DRM对象的权限是否可用
HRESULT FileDrmVerifyRights (HWND hwndParent,
LPCTSTR pszFileName,
DWORD dwRight,
DWORD dwFlags,
PDWORD pdwRightsStatus);
注意,不管是不是已经做了FileDrmGetRights判断,这个函数在使用DRM对象时必须被调用的。
11、FileDrmCommitRights 提交对一个DRM对象进行使用
HRESULT FileDrmCommitRights (HANDLE hFile,
DWORD dwRight,
DWORD dwFlags);
12、FileDrmDelete 删除一个DRM对象及其权限
HRESULT FileDrmDeleteFile (LPCTSTR pszFileName);
13、FileDrmStoreContent 将原始的MIME编码的DRM内容保存到本地文件
HRESULT FileDrmStoreContent (LPCTSTR pszInputFileName,
LPCTSTR pszOutputFileName,
LPVOID pvReserved,
LPTSTR pszMimeType,
DWORD *pcchMimeTypeLen);
14、FileDrmVerifyRightsEx 校验DRM对象的权限是否可用(多用于文件浏览时)
HRESULT FileDrmVerifyRightsEx (HWND hwndParent,
LPCTSTR pszFileName,
DWORD dwRight,
DWORD dwFlags,
PDWORD pdwRightsStatus,
LPGUID pguidFilter);
Reference:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mobilesdk5/html/mob5oriFile-BasedDigitalRightsManagement.asp
1、FileDrmIsDRM 判断一个文件是否是是DRM对象
HRESULT FileDrmIsDRM (LPCTSTR pszFile,
PBOOL pfDRM);
2、FileDrmCreateFile 创建一个FDRM的内容文件
HRESULT FileDrmCreateFile (LPCTSTR pszFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile,
PHANDLE phFile);
调用方式同CreateFile一样,不过需要注意的是参数里的dwDesiredAccess只能为GENERIC_READ,因为DRM对象都是被保护对象,对应用程序只读。同样,dwCreationDisposition只能为OPEN_EXISTING。
3、FileDrmCreateForwardableContent 创建一个用于转发的DRM文件
HRESULT FileDrmCreateForwardableContent (LPCTSTR pszFileName,
DWORD dwFlags,
LPCTSTR pszOutputFile);
4、FileDrmNotifyEnable 打开FDRM提醒
HRESULT FileDrmNotifyEnable (LPCTSTR pszFileName,
LPTSTR pszValueName,
DWORD cchValueNameLen);
5、FileDrmNotifyDisable 关闭FDRM提醒
HRESULT FileDrmNotifyDisable (LPCTSTR pszFileName);
6、FileDrmShowLicenseInfo 显示DRM对象权限信息
HRESULT FileDrmShowLicenseInfo (HWND hwndParent,
LPCTSTR pszFileName);
7、FileDrmHandleError 显示错误信息
HRESULT FileDrmHandleError (HWND hwndParent,
HRESULT hrError,
LPCTSTR pszFileName,
DWORD dwFlags,
PDWORD pdwStatus);
8、FileDrmRenewRights 获取新的DRM对象权限
HRESULT FileDrmRenewRights (HWND hwndParent,
LPCTSTR pszFileName);
一般情况下会通过网络获取新权限。
9、FileDrmGetMetric 获取度量值
HRESULT FileDrmGetMetric (FDRMMETRIC drmID,
DWORD *pdwMetric);
10、FileDrmVerifyRights 校验DRM对象的权限是否可用
HRESULT FileDrmVerifyRights (HWND hwndParent,
LPCTSTR pszFileName,
DWORD dwRight,
DWORD dwFlags,
PDWORD pdwRightsStatus);
注意,不管是不是已经做了FileDrmGetRights判断,这个函数在使用DRM对象时必须被调用的。
11、FileDrmCommitRights 提交对一个DRM对象进行使用
HRESULT FileDrmCommitRights (HANDLE hFile,
DWORD dwRight,
DWORD dwFlags);
12、FileDrmDelete 删除一个DRM对象及其权限
HRESULT FileDrmDeleteFile (LPCTSTR pszFileName);
13、FileDrmStoreContent 将原始的MIME编码的DRM内容保存到本地文件
HRESULT FileDrmStoreContent (LPCTSTR pszInputFileName,
LPCTSTR pszOutputFileName,
LPVOID pvReserved,
LPTSTR pszMimeType,
DWORD *pcchMimeTypeLen);
14、FileDrmVerifyRightsEx 校验DRM对象的权限是否可用(多用于文件浏览时)
HRESULT FileDrmVerifyRightsEx (HWND hwndParent,
LPCTSTR pszFileName,
DWORD dwRight,
DWORD dwFlags,
PDWORD pdwRightsStatus,
LPGUID pguidFilter);
Reference:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mobilesdk5/html/mob5oriFile-BasedDigitalRightsManagement.asp
[ 2005/12/19 00:41 | by turbozv ]
图(Graph)是一种比树更复杂的数据结构。
让我们复习一下离散数学的知识,图 = 点集 + 边集,n个节点的图,边数最多C(n,2)。
一、图的存储(n个节点, e条边):
邻接矩阵
最常用的图静态存储办法,用一个n x n的数组存储任意两节点的连通情况(一般情况下同时存放权值),特点是创建,查找操作非常方便,查询两个节点是否连接的时间复杂度是O(1),不过空间开销很大S(n^2),求节点的入度出度为O(n)。
邻接表
S(n) = n + e
逆邻接表
十字链表(有向图)
邻接多重表(无向图)
让我们复习一下离散数学的知识,图 = 点集 + 边集,n个节点的图,边数最多C(n,2)。
一、图的存储(n个节点, e条边):
邻接矩阵
最常用的图静态存储办法,用一个n x n的数组存储任意两节点的连通情况(一般情况下同时存放权值),特点是创建,查找操作非常方便,查询两个节点是否连接的时间复杂度是O(1),不过空间开销很大S(n^2),求节点的入度出度为O(n)。
邻接表
S(n) = n + e
逆邻接表
十字链表(有向图)
邻接多重表(无向图)
[ 2005/12/18 01:07 | by turbozv ]
[ 2005/12/11 23:00 | by turbozv ]
1、《Data Structure》
点评:作为经典教材,CS的同学们都学过,不用过多介绍,我只想问一句:书中每个例程你能不看书10分钟以内完成么?如果不能,请仔细地再看一遍。
2、《The C Programming Language》
点评:丢掉谭老师的书吧,这本书才是入门C语言的Bible。记住:如果一开始开错了书,以后就错得太远了。如果你已经熟练C语言了,还是建议通读一遍,受益匪浅的。
3、《Expert C Programming》
点评:鱼书,C语言进阶读物,让你对C语言有更透彻的认识,C语言永远学不完的,never over to learn C.
4、《Programming Pearls》
点评:工程中遇到的问题的巧妙解法,不是算法专著,只是一本薄薄的小册子,当小说读最好:)
5、《The Prictice of Programming》
6、《Algorithms in C++》
7、《Data Structures and Algorithm Analysis in C》
8、《Computer Systems: A Programmer's Perspective》
点评:内容就和书名一样实际,以一个程序员的观点来看待计算机系统,比《组成原理》实际得多,对程序员来说是必须看的一本书。
9、《Compilers Principles,Techniques,and Tools》
点评:龙书
10、《Design Patterns Elements of Reusable Object-Oriented software》
点评:OO领域的绝对大作,工程领域中必用到的。
《Pattern-Oriented Software Architecture, Volume 1: A System of Patterns》
点评论:Jarod觉得这本书更实在
点评:作为经典教材,CS的同学们都学过,不用过多介绍,我只想问一句:书中每个例程你能不看书10分钟以内完成么?如果不能,请仔细地再看一遍。
2、《The C Programming Language》
点评:丢掉谭老师的书吧,这本书才是入门C语言的Bible。记住:如果一开始开错了书,以后就错得太远了。如果你已经熟练C语言了,还是建议通读一遍,受益匪浅的。
3、《Expert C Programming》
点评:鱼书,C语言进阶读物,让你对C语言有更透彻的认识,C语言永远学不完的,never over to learn C.
4、《Programming Pearls》
点评:工程中遇到的问题的巧妙解法,不是算法专著,只是一本薄薄的小册子,当小说读最好:)
5、《The Prictice of Programming》
6、《Algorithms in C++》
7、《Data Structures and Algorithm Analysis in C》
8、《Computer Systems: A Programmer's Perspective》
点评:内容就和书名一样实际,以一个程序员的观点来看待计算机系统,比《组成原理》实际得多,对程序员来说是必须看的一本书。
9、《Compilers Principles,Techniques,and Tools》
点评:龙书
10、《Design Patterns Elements of Reusable Object-Oriented software》
点评:OO领域的绝对大作,工程领域中必用到的。
《Pattern-Oriented Software Architecture, Volume 1: A System of Patterns》
点评论:Jarod觉得这本书更实在