TODOSVR.CPP
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:9k
源码类别:

Windows编程

开发平台:

Visual C++

  1. //=--------------------------------------------------------------------------=
  2. // ToDoSvr.Cpp
  3. //=--------------------------------------------------------------------------=
  4. // Copyright 1995-1997  Microsoft Corporation.  All Rights Reserved.
  5. //
  6. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF 
  7. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
  8. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 
  9. // PARTICULAR PURPOSE.
  10. //=--------------------------------------------------------------------------=
  11. //
  12. // various routines et all that aren't in a file for a particular automation
  13. // object, and don't need to be in the generic ole automation code.
  14. //
  15. #define INITOBJECTS                // define the descriptions for our objects
  16. #include "IPServer.H"
  17. #include "LocalSrv.H"
  18. #include "LocalObj.H"
  19. #include "ToDoSvrIfc.H"
  20. #include "CDocObj.H"
  21. #include "Globals.H"
  22. #include "Util.H"
  23. #include "Resource.H"
  24. #include "ToDoCtl.H"
  25. #include "ToDoPPG.H"
  26. // needed for ASSERTs and FAIL
  27. //
  28. SZTHISFILE
  29. //=--------------------------------------------------------------------------=
  30. // our Libid.  This should be the LIBID from the Type library, or NULL if you
  31. // don't have one.
  32. //
  33. const CLSID *g_pLibid = &LIBID_ToDoSvrObjects;
  34. //=--------------------------------------------------------------------------=
  35. // Set this up if you want to have a window proc for your parking window. This
  36. // is really only interesting for Sub-classed controls that want, in design
  37. // mode, certain messages that are sent only to the parent window.
  38. //
  39. WNDPROC g_ParkingWindowProc = NULL;
  40. //=--------------------------------------------------------------------------=
  41. // Localization Information
  42. //
  43. // We need the following two pieces of information:
  44. //    a. whether or not this DLL uses satellite DLLs for localization.  if
  45. //       not, then the lcidLocale is ignored, and we just always get resources
  46. //       from the server module file.
  47. //    b. the ambient LocaleID for this in-proc server.  Controls calling
  48. //       GetResourceHandle() will set this up automatically, but anybody
  49. //       else will need to be sure that it's set up properly.
  50. //
  51. const VARIANT_BOOL g_fSatelliteLocalization = FALSE;
  52. LCID               g_lcidLocale = MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT);
  53. //=--------------------------------------------------------------------------=
  54. // your license key and where under HKEY_CLASSES_ROOT_LICENSES it's sitting
  55. //
  56. const WCHAR g_wszLicenseKey [] = L"";
  57. const WCHAR g_wszLicenseLocation [] = L"";
  58. //=--------------------------------------------------------------------------=
  59. // This Table describes all the automatible objects in your automation server.
  60. // See AutomationObject.H for a description of what goes in this structure
  61. // and what it's used for.
  62. //
  63. // DOCOBJ: Use DOCOBJECT macro to describe our DocObject, not CONTROLOBJECT
  64. //         as usual.
  65. //
  66. OBJECTINFO g_ObjectInfo[] = {
  67.     DOCOBJECT(ToDo),
  68.     PROPERTYPAGE(ToDoGeneral),
  69.     EMPTYOBJECT
  70. };
  71. const char g_szLibName[] = "ToDoSvr";
  72. //=--------------------------------------------------------------------------=
  73. // InitializeLibrary
  74. //=--------------------------------------------------------------------------=
  75. // called from DllMain:DLL_PROCESS_ATTACH.  allows the user to do any sort of
  76. // initialization they want to.
  77. //
  78. // Notes:
  79. //
  80. void WINAPI InitializeLibrary(void)
  81. {
  82.     // TODO: initialization here.  control window class should be set up in
  83.     // RegisterClassData.
  84. }
  85. //=--------------------------------------------------------------------------=
  86. // UninitializeLibrary
  87. //=--------------------------------------------------------------------------=
  88. // called from DllMain:DLL_PROCESS_DETACH.  allows the user to clean up anything
  89. // they want.
  90. //
  91. // Notes:
  92. //
  93. void WINAPI UninitializeLibrary(void)
  94. {
  95.     // TODO: uninitialization here.  control window class will be unregistered
  96.     // for you, but anything else needs to be cleaned up manually.
  97.     // Please Note that the Window 95 DLL_PROCESS_DETACH isn't quite as stable
  98.     // as NT's, and you might crash doing certain things here ...
  99. }
  100. //=--------------------------------------------------------------------------=
  101. // CheckForLicense
  102. //=--------------------------------------------------------------------------=
  103. // users can implement this if they wish to support Licensing.  otherwise,
  104. // they can just return TRUE all the time.
  105. //
  106. // Parameters:
  107. //    none
  108. //
  109. // Output:
  110. //    BOOL            - TRUE means the license exists, and we can proceed
  111. //                      FALSE means we're not licensed and cannot proceed
  112. //
  113. // Notes:
  114. //    - implementers should use g_wszLicenseKey and g_wszLicenseLocation
  115. //      from the top of this file to define their licensing [the former
  116. //      is necessary, the latter is recommended]
  117. //
  118. BOOL WINAPI CheckForLicense(void)
  119. {
  120.     // TODO: you should make sure the machine has your license key here.
  121.     // this is typically done by looking in the registry.
  122.     //
  123.     return TRUE;
  124. }
  125. //=--------------------------------------------------------------------------=
  126. // CheckLicenseKey
  127. //=--------------------------------------------------------------------------=
  128. // when IClassFactory2::CreateInstanceLic is called, a license key is passed
  129. // in, and then passed on to this routine.  users should return a boolean 
  130. // indicating whether it is a valid license key or not
  131. //
  132. // Parameters:
  133. //    LPWSTR          - [in] the key to check
  134. //
  135. // Output:
  136. //    BOOL            - false means it's not valid, true otherwise
  137. //
  138. // Notes:
  139. //
  140. BOOL WINAPI CheckLicenseKey(LPWSTR pwszKey)
  141. {
  142.     // TODO: check the license key against your values here and make sure it's
  143.     // valid.
  144.     //
  145.     return TRUE;
  146. }
  147. //=--------------------------------------------------------------------------=
  148. // GetLicenseKey
  149. //=--------------------------------------------------------------------------=
  150. // returns our current license key that should be saved out, and then passed
  151. // back to us in IClassFactory2::CreateInstanceLic
  152. //
  153. // Parameters:
  154. //    none
  155. //
  156. // Output:
  157. //    BSTR                 - key or NULL if Out of memory
  158. //
  159. // Notes:
  160. //
  161. BSTR WINAPI GetLicenseKey(void)
  162. {
  163.     // TODO: return your license key here.
  164.     //
  165.     return SysAllocString(L"");
  166. }
  167. //=--------------------------------------------------------------------------=
  168. // RegisterData
  169. //=--------------------------------------------------------------------------=
  170. // lets the inproc server writer register any data in addition to that in
  171. // any other objects.
  172. //
  173. // Output:
  174. //    BOOL            - false means failure.
  175. //
  176. // Notes:
  177. //
  178. BOOL WINAPI RegisterData(void)
  179. {
  180.     // DOCOBJ: DocObjects need some additional registry entries.
  181.     //         Register them here!
  182.     // read file extension and file description strings from resources
  183.     char szExt[20];
  184.     if (!LoadString(GetResourceHandle(),  
  185.                     DEFAULTEXTIDOFDOCOBJECT(OBJECT_TYPE_CTLTODO),
  186.                     szExt,
  187.                     sizeof(szExt)))
  188.         szExt[0] = '';
  189.     char szDesc[40];
  190.     if (!LoadString(GetResourceHandle(),  
  191.                     FILEDESCRIPTIONIDOFDOCOBJECT(OBJECT_TYPE_CTLTODO),
  192.                     szDesc,
  193.                     sizeof(szDesc)))
  194.         szDesc[0] = '';
  195.     // register special docobj keys
  196.     return RegisterDocObject(g_szLibName, NAMEOFOBJECT(OBJECT_TYPE_CTLTODO),
  197.                              CLSIDOFOBJECT(OBJECT_TYPE_CTLTODO), 
  198.                              MISCFLAGSOFDOCOBJECT(OBJECT_TYPE_CTLTODO),
  199.                              PRINTOFDOCOBJECT(OBJECT_TYPE_CTLTODO),
  200.                              szExt, szDesc);
  201. }
  202. //=--------------------------------------------------------------------------=
  203. // UnregisterData
  204. //=--------------------------------------------------------------------------=
  205. // inproc server writers should unregister anything they registered in
  206. // RegisterData() here.
  207. //
  208. // Output:
  209. //    BOOL            - false means failure.
  210. //
  211. // Notes:
  212. //
  213. BOOL WINAPI UnregisterData(void)
  214. {
  215.     // TODO: any additional registry cleanup that you might wish to do.
  216.     //
  217.     return TRUE;
  218. }
  219. //=--------------------------------------------------------------------------=
  220. // CRT stubs
  221. //=--------------------------------------------------------------------------=
  222. // these two things are here so the CRTs aren't needed. this is good.
  223. //
  224. // basically, the CRTs define this to suck in a bunch of stuff.  we'll just
  225. // define them here so we don't get an unresolved external.
  226. //
  227. // TODO: if you are going to use the CRTs, then remove this line.
  228. //
  229. // extern "C" int _fltused = 1;
  230. extern "C" int _purecall(void)
  231. {
  232.   FAIL("Pure virtual function called.");
  233.   return 0;
  234. }