Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
6.7 KiB

  1. -------------------------------------------------------------------------------
  2. NMRK- NetMeeting Resource Kit wizard |
  3. -------------------------------------------------------------------------------
  4. author: ryanha |
  5. -------------------------------------------------------------------------------
  6. ----------
  7. Overview:
  8. ----------
  9. NetMeeting can be configured via the registry. There are several registry
  10. keys that can be tweaked. Because of the fact that tweaking the registry is
  11. error-prone by nature, we do not support users directly tweaking the registry.
  12. With prior releases of the NetMeeting Resource kit, the appropriate registry
  13. keys and values could be tweaked via the Policy Editor, and .POL files. This
  14. was not an effective solution for all of our customers, because many of them
  15. did not use the policy functionality for a variety of reasons. The NMRK
  16. wizard is the solution to this problem. A user is able to create a custom
  17. distributable file of NetMeeting that has the selected properties enabled
  18. based on the information gathered in the Wizard. In short, the user enters
  19. information in a series of dialogs, and the wizard creates a file called
  20. nm21c.exe. This is a custom distributable that the users can use for
  21. deployment in their corporation.
  22. ---------------
  23. Implementation
  24. ---------------
  25. 1.) Gather information from the user through a series of dialogs
  26. 2.) Find the nm21.exe original distributable
  27. 3.) Clean up our stuff from the temp directory in case we terminated
  28. abnormally in a previous run
  29. 4.) Create the directory %TEMP%\nmrktmp
  30. 5.) Extract the old distributable to the %TEMP%\nmrktmp directory
  31. 6.) Find the MsNetMtg.inf file in the %TEMP%\nmrktmp directory
  32. 7.) Alter the MsNetMtg.inf file to contian the new registry settings
  33. based on the information gathered from the wizard dialogs
  34. 8.) Copy the nm21.exe file to the output directory with the new filename,
  35. this defaults to:
  36. <nmrk root>\output\nm21c.exe
  37. 9.) Use updfile.exe ( from <nmrk root>\tools\ ) to add the new inf file
  38. to the <nmrk root>\output\nm21c.exe file.
  39. 10.) Delete the files that we created in the %TEMP%\nmrktmp directory
  40. 11.) Delete the directory %TEMP%\nmrktmp
  41. 12.) MessageBox to the user that we have successfully created the custom
  42. distributable file.
  43. //////////////////////////////////////////////////////////////////////
  44. SEE: in file NmAkWiz.cpp: bool CNmAkWiz::_CreateNewInfFile( void )
  45. //////////////////////////////////////////////////////////////////////
  46. in section [DefaultInstall]
  47. in subsection AddReg add NetMtg.Install.Reg.NMRK section to the end
  48. in subsiction DelReg add NetMtg.Install.DeleteReg.NMRK
  49. in section [DefaultInstall.NT]
  50. in subsection AddReg add NetMtg.Install.Reg.NMRK section to the end
  51. in subsiction DelReg add NetMtg.Install.DeleteReg.NMRK
  52. create section [NetMtg.Install.Reg.NMRK]
  53. add the registry keys to be added here
  54. create section [NetMtg.Install.DeleteReg.NMRK]
  55. add the registry keys to be deleted here
  56. There are some keys in section [NetMtg.Install.DeleteReg.NMRK] that may
  57. also be in an AddReg section elsewhere in the .inf file. In section
  58. [NetMtg.Install.Reg.PerUser], the keys that start with
  59. HKCU,\"%KEY_CONFERENCING%\\UI\\Directory\",\"Name"
  60. and HKCU,\"%KEY_CONFERENCING%\\UI\\Directory\",\"Count"
  61. must all be deleted because we add them based on information from the
  62. NMRK wizard. The keys are located in the [NetMtg.Install.Reg.NMRK] section.
  63. In section [NetMtg.Install.Reg.PerUser].
  64. --------------
  65. Dependencies |
  66. --------------
  67. 1.) The distributable is assumed to be called nm21.exe
  68. If there is a new version of NetMeeting that is distributed ( nm22.exe ),
  69. there are going to be some issues to make sure that nmrk.exe works with
  70. the new distributable.
  71. 2.) INF file dependencies ( See item #7 in imelplementation section above )
  72. To locate the keys:
  73. HKCU,\"%KEY_CONFERENCING%\\UI\\Directory\",\"Name"
  74. and HKCU,\"%KEY_CONFERENCING%\\UI\\Directory\",\"Count"
  75. from the default .inf file, the locations of these keys relative to
  76. their section is hard-coded. Also,the names of the keys is hard-coded.
  77. This was done in the interest of simplicity. However, NMRK is sensitive
  78. to changes in the distributable .inf file. The following assumptions are
  79. made:
  80. 1.) Every netmeeting setup environment executes at least one of the sections
  81. [DefaultInstall], or [DefaultInstall.NT].
  82. 2.) The order in which the above sections appear is [DefaultInstall],
  83. then [DefaultInstall.NT].
  84. 3.) In each of the above sections, there are two subsections, AddReg and
  85. DelReg.
  86. 4.) The order in which these subsections appear is AddReg, then DelReg
  87. 5.) The default .inf file does not have sections titled
  88. [NetMtg.Install.Reg.NMRK] or [NetMtg.Install.DeleteReg.NMRK]
  89. 6.) The default .inf file uses the section [NetMtg.Install.Reg.PerUser]
  90. for all installtion environments.
  91. 7.) The default .inf file has the following format for
  92. section [NetMtg.Install.Reg.PerUser]:
  93. ------------------------------------------------------------------------------
  94. // somewhere in the MsNetMtg.inf file
  95. [NetMtg.Install.Reg.PerUser]
  96. <WHITE SPACE>
  97. HKCU,"%KEY_CONFERENCING%\\UI\\Directory","Count<ANYCHAR*><ENDLINE>
  98. HKCU,"%KEY_CONFERENCING%\\UI\\Directory","Name<ANYCHAR*><ENDLINE>
  99. HKCU,"%KEY_CONFERENCING%\\UI\\Directory","Name<ANYCHAR*><ENDLINE>
  100. HKCU,"%KEY_CONFERENCING%\\UI\\Directory","Name<ANYCHAR*><ENDLINE>
  101. ...
  102. [Strings]
  103. ------------------------------------------------------------------------------
  104. // END /* somewhere in the MsNetMtg.inf file */
  105. //////////////////////////////////////////////////////////////////////
  106. SEE: in file NmAkWiz.cpp: bool CNmAkWiz::_CreateNewInfFile( void )
  107. //////////////////////////////////////////////////////////////////////
  108. 3.) NMRK will fail if the following registry key is not there:
  109. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NMRK\InstallationDirectory
  110. NMRK expects to find that registry key. If it is not present,
  111. NMRK will fail with a message stating that the NetMeeting
  112. Resource Kit was not properly installed
  113. 4.) File locations:
  114. <nmrk root path> ==
  115. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NMRK\InstallationDirectory
  116. nmrk.exe is located in this directory
  117. <nmrk root path>\tools
  118. updfile.exe is located in this directory and is used to update
  119. the .INF file in the custom distributable
  120. <nmrk root path>\output
  121. This is the default location for the nm21c.exe custom distributable
  122. <nmrk root path>\source
  123. This is the default location for the nm21.exe original dist. file
  124. %TEMP%\nmrktmp
  125. This directory is a temp directory that NMRK creates to extract the
  126. files needed to create the custom distributable