---
title: "Invoking Scripts (ATL) | Microsoft Docs"
ms.custom: ""
ms.date: "11/04/2016"
ms.reviewer: ""
ms.suite: ""
ms.technology:
- "cpp-windows"
ms.tgt_pltfrm: ""
ms.topic: "article"
f1_keywords:
- "StringRegister"
dev_langs:
- "C++"
helpviewer_keywords:
- "StringRegister method"
- "scripts, invoking registry in ATL"
ms.assetid: eabd41ee-586b-4266-9e92-5aaad04b73a4
caps.latest.revision: 10
author: "mikeblome"
ms.author: "mblome"
manager: "ghogen"
translation.priority.ht:
- "de-de"
- "es-es"
- "fr-fr"
- "it-it"
- "ja-jp"
- "ko-kr"
- "ru-ru"
- "zh-cn"
- "zh-tw"
translation.priority.mt:
- "cs-cz"
- "pl-pl"
- "pt-br"
- "tr-tr"
---
# Invoking Scripts
[Using Replaceable Parameters (The Registrar's Preprocessor)](../atl/using-replaceable-parameters-the-registrar-s-preprocessor.md) discusses replacement maps and mentions the Registrar method **AddReplacement**. The Registrar has eight other methods specific to scripting, and all are described in the following table.
|Method|Syntax/Description|
|------------|-------------------------|
|**ResourceRegister**|**HRESULT ResourceRegister( LPCOLESTR** *resFileName* **, UINT** `nID` **, LPCOLESTR** `szType` **);**
Registers the script contained in a module's resource. *resFileName* indicates the UNC path to the module itself. `nID` and `szType` contain the resource's ID and type, respectively.|
|**ResourceUnregister**|**HRESULT ResourceUnregister( LPCOLESTR** *resFileName* **, UINT** `nID` **, LPCOLESTR** `szType` **);**
Unregisters the script contained in a module's resource. *resFileName* indicates the UNC path to the module itself. `nID` and `szType` contain the resource's ID and type, respectively.|
|**ResourceRegisterSz**|**HRESULT ResourceRegisterSz( LPCOLESTR** *resFileName* **, LPCOLESTR** *szID* **, LPCOLESTR** `szType` **);**
Registers the script contained in a module's resource. *resFileName* indicates the UNC path to the module itself. *szID* and `szType` contain the resource's string identifier and type, respectively.|
|**ResourceUnregisterSz**|**HRESULT ResourceUnregisterSz( LPCOLESTR** *resFileName* **, LPCOLESTR** *szID* **, LPCOLESTR** `szType` **);**
Unregisters the script contained in a module's resource. *resFileName* indicates the UNC path to the module itself. *szID* and `szType` contain the resource's string identifier and type, respectively.|
|**FileRegister**|**HRESULT FileRegister( LPCOLESTR** *fileName* **);**
Registers the script in a file. *fileName* is a UNC path to a file that contains (or is) a resource script.|
|**FileUnregister**|**HRESULT FileUnregister( LPCOLESTR** *fileName* **);**
Unregisters the script in a file. *fileName* is a UNC path to a file that contains (or is) a resource script.|
|**StringRegister**|**HRESULT StringRegister( LPCOLESTR** *data* **);**
Registers the script in a string. *data* contains the script itself.|
|**StringUnregister**|**HRESULT StringUnregister( LPCOLESTR** *data* **);**
Unregisters the script in a string. *data* contains the script itself.|
**ResourceRegisterSz** and **ResourceUnregisterSz**, are similar to **ResourceRegister** and **ResourceUnregister**, but allow you to specify a string identifier.
The methods **FileRegister** and **FileUnregister** are useful if you do not want the script in a resource or if you want the script in its own file. The methods **StringRegister** and **StringUnregister** allow the .rgs file to be stored in a dynamically allocated string.
## See Also
[Creating Registrar Scripts](../atl/creating-registrar-scripts.md)