Copyright Information

Microsoft DirectX Transform provides a way for you to secure the transforms you write so that only registered users can legally use your copyrighted transforms with their content. You can easily implement this, and it provides you with legal recourse for copyright violations.

Security Basics

You can secure your transforms with the m_bCopyrightIsNotValid data member, which you can access by implementing the put_Copyright and get_Copyright methods in your transform. You should create two different builds of your transform DLL. The release build version is intended for free distribution for viewing your transform on Web pages. The release licensed build version is intended to sell to content providers who will use your transform. The two builds should handle the Copyright property differently. In either case, the transform should not produce output on a call to IDXTransform::Execute until the Copyright property is properly set.

Release Build

The release build is the version of the DLL that is given to users to view your transform. In this version, the m_bCopyrightIsNotValid member should be initialized to TRUE, so that this version of your transform does not work until the proper copyright string has been set using the put_Copyright method. The put_Copyright method compares the string it receives to the string returned from the licensed version of the get_Copyright method. If the strings match, m_bCopyrightIsNotValid is set to FALSE, and the transform should produce output when IDXTransform::Execute is called.

The get_Copyright method should always return "" (an empty string) and S_FALSE as an error code. This way content authors cannot use Web page authoring tools, such as Microsoft FrontPage 2000, to write pages for this version of the transform because they cannot obtain the copyright string from the transform. Registered content authors can purchase the right to use the copyright string with the put_Copyright method to enable the transform in their pages. Only registered content authors are authorized to use this copyright string. Someone could obtain the copyright string and copy it into Web pages to enable the transform, which would be illegal. The string can be found through Web search engines, so unauthorized use can be tracked.

Release Licensed Build

The release licensed build is the version of the DLL that is purchased by Web page authors. In this version, the m_bCopyrightIsNotValid member should be initialized to FALSE so that this version of the transform always works. The get_Copyright method should be implemented and return a string, such as the following:

static _bstr_t g_Notice( L"Copyright Microsoft Corporation 1998,
Unauthorized duplication of this string is illegal
{AF279B30-86EB-11D1-81BF-0000F87557DB}" );

The put_Copyright method should do nothing and always return S_OK. This version of the transform should have property persistence enabled. This enables registered authors to use the transform with Web page authoring tools without placing the copyright string into the page.