Article ID: 222685
Article Last Modified on 10/11/2006
APPLIES TO
- Microsoft PowerPoint 2000 Standard Edition
This article was previously published under Q222685
For a Microsoft PowerPoint 97 for Windows version of this article, see 182842.
IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:
256986 Description of the Microsoft Windows Registry
SUMMARY
When you load a Microsoft PowerPoint add-in by using the Add-Ins dialog box, the add-in remains loaded until you exit PowerPoint. However, PowerPoint does not automatically load that add-in every time you start PowerPoint.
This article describes several ways you can create registry entries for a PowerPoint add-in or wizard so that it loads automatically when you start PowerPoint.
MORE INFORMATION
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. NOTE: The following macro examples work only in PowerPoint. Visual Basic for Applications macros are not supported by the Microsoft PowerPoint Viewer. For additional information, click the following article number to view the article in the Microsoft Knowledge Base: There are two locations in the registry where you can register a PowerPoint add-in so that it will load automatically: HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE.
Method 1: Use the AutoLoad Property to Register the Add-in in HKEY_CURRENT_USER
Sub Auto_Open() ' Get a reference to your add-in. With Addins(Addins.Count) ' Create the registry key in HKEY_CURRENT_USER. .Registered = msoTrue ' Set the AutoLoad value in the registry. .AutoLoad = msoTrue ' Makes sure that the add-in is loaded. .Loaded = msoTrue End With End Sub
Method 2: Use the Registry API to Register the Add-in in HKEY_LOCAL_MACHINE
The RegisterAddin() function adds the appropriate registry entries for an add-in.
' ********************************************************************** ' ' FUNCTION: ' RegisterAddin() ' ' PURPOSE: ' The function registers an add-in in the registry. ' ' ARGUMENTS: ' strBranch - This is the branch of the registry in which you ' want to register the PowerPoint add-in. This value can be LOCAL ' or L(for HKEY_LOCAL_MACHINE) or CURRENT or C ' (for ' ' strAddinName - This is the name of your add-in. ' ' strAddinPath - This is the full path to your add-in. ' ' fAutoLoad - This is a boolean value you can use to set the ' AutoLoad property. If you specify TRUE, your add-in ' automatically loads every time PowerPoint is started. ' ' RETURNS: ' True - If the function worked. ' False - If the function failed for any reason. ' ' ********************************************************************** Function RegisterAddin( _ strBranch As String, _ strAddinName As String, _ strAddinPath, _ fAutoLoad As Boolean) As Boolean ' Turn on error trapping. On Error GoTo RegAddinError Err.Clear ' Create the variable used in the call to RegCreateKeyEx(). Dim lhkeyHive As Long Dim strSubKey As String Dim lhkey As Long Dim lDisp As Long Dim lReturnVal As Long ' Make the branch string all caps. strBranch = UCase(strBranch) ' Determine which branch of the registry to use. Select Case strBranch Case Is = "LOCAL" lhkeyHive = HKEY_LOCAL_MACHINE Case Is = "L" lhkeyHive = HKEY_LOCAL_MACHINE Case Is = "CURRENT" lhkeyHive = HKEY_CURRENT_USER Case Is = "C" lhkeyHive = HKEY_CURRENT_USER Case Else ' Passed in the wrong parameter, so use HKEY_LOCAL_MACHINE lhkeyHive = HKEY_LOCAL_MACHINE End Select ' Create the SubKey string. strSubKey = "Software\Microsoft\Office\9.0\PowerPoint\AddIns\" & _ strAddinName ' Create or open the registry key. lReturnVal = RegCreateKeyEx( _ lhkeyHive, _ strSubKey, _ 0, _ "", _ REG_OPTION_NON_VOLATILE, _ KEY_ALL_ACCESS, _ vbNullString, _ lhkey, _ lDisp) ' See if error occurred when opening key. If (lReturnVal <> ERROR_SUCCESS Or lhkey = 0) Then RegisterAddin = False Exit Function End If 'Add the path to the add-in to the registry. lReturnVal = RegSetValueEx( _ lhkey, _ "Path", _ 0&, _ REG_SZ, _ strAddinPath, _ Len(strAddinPath)) ' See if an error occurred when writing the registry key. If (lReturnVal <> ERROR_SUCCESS) Then RegisterAddin = False Exit Function End If ' Add the AutoLoad key if needed. If fAutoLoad = True Then 'Add the path to the add-in to the registry. lReturnVal = RegSetDwordValueEx( _ lhkey, _ "AutoLoad", _ 0, _ REG_DWORD, _ &HFFFFFFFF, _ 4) ' See if an error occurred when writing the registry key. If (lReturnVal <> ERROR_SUCCESS) Then RegisterAddin = False Exit Function End If End If ' Close the registry key. lReturnVal = RegCloseKey(lhkey) ' See if error occurred when closing the registry key. If (lReturnVal <> ERROR_SUCCESS) Then RegisterAddin = False Exit Function End If ' All is well, so return true. RegisterAddin = True ' Exit the sub so that the code does not flow into ' the error handler. Exit Function ' Handle an add-in registration error. RegAddinError: RegisterAddin = False ' Close the registry key if it is still open. If lhkey <> 0 Then RegCloseKey lhkey End If End Function
Use the following syntax when calling the RegisterAddin() function:
If (RegisterAddin("l", "AddIn", "c:\Path", True) = True) Then MsgBox "It worked" Else MsgBox "it did not work" End If
Method 3: Create a Registration (.Reg) File for Your Add-In
WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
You can use a registration (.reg) file rather than code to register your add-in. The following sample text can be used to register an add-in REGEDIT4
[<key>\Software\Microsoft\Office\9.0\PowerPoint\AddIns\MyAddin] "Path"="C:\\PPA_PATH\\MYADDIN.PPA" "AutoLoad"=dword:ffffffff<BR/>
where <key> is the registry key (either HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE) in which you want to register your add-in.
Method 4: Make the Entries in the Registry by Hand
You can open the registry and add the entries for your add-in by hand. For information about how to edit the registry, view the "Changing Keys And Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you are running Windows NT, you should also update your Emergency Repair Disk (ERD).
REFERENCES
For more information about how to use the sample code in this article, click the article number below to view the article in the Microsoft Knowledge Base:
212536 OFF2000: How to Run Sample Code from Knowledge Base Articles
Additional query words: 9.00 ppt9 vba vbe ppt2k powerpt vba2k ppt9.0 ppt2000 program programming
Keywords: kbvba kbregistry kbwizard kbstartprogram kbaddin kbcode kbdtacode kbhowto kbmacroexample kbprogramming KB222685