Предыдущем разделе, С помощью заменяемых параметров (регистратор препроцессора), обсудил замена карты и представил два регистратора, AddReplacement и ClearReplacements. Регистратор имеет восемь других конкретных сценариев для методов. Все восемь из этих методов, описаны в следующей таблице и вызывать регистратора на конкретном сценарии.
| Метод | Синтаксис/описание |
| ResourceRegister | HRESULT ResourceRegister (LPCOLESTR resFileName, UINT nID, LPCOLESTR szType ); Регистрирует сценарий, содержащийся в ресурсе модуля. resFileName указывает UNC-путь к сам модуль. nID и szType содержат ресурса Идентификатор и тип, соответственно. |
| ResourceUnregister | HRESULT ResourceUnregister (LPCOLESTR resFileName, UINT nID, LPCOLESTR szType ); Отменяет регистрацию сценарий, содержащийся в ресурсе модуля. resFileName указывает UNC-путь к сам модуль. nID и szType содержат ресурса Идентификатор и тип, соответственно. |
| ResourceRegisterSz | HRESULT ResourceRegisterSz (LPCOLESTR resFileName, LPCOLESTR szID, LPCOLESTR szType ); Регистрирует сценарий, содержащийся в ресурсе модуля. resFileName указывает UNC-путь к сам модуль. szID и szType содержат идентификатор строки ресурса и тип, соответственно. |
| ResourceUnregisterSz | HRESULT ResourceUnregisterSz (LPCOLESTR resFileName, LPCOLESTR szID, LPCOLESTR szType ); Отменяет регистрацию сценарий, содержащийся в ресурсе модуля. resFileName указывает UNC-путь к сам модуль. szID и szType содержат идентификатор строки ресурса и тип, соответственно. |
| FileRegister | HRESULT FileRegister (LPCOLESTR имя файла ); Регистрирует сценарий в файле. имя файла является UNC-путь к файлу, который содержит (или) сценария ресурсов. |
| FileUnregister | HRESULT FileUnregister (LPCOLESTR имя файла ); Отменяет регистрацию сценарий в файле. имя файла является UNC-путь к файлу, который содержит (или) сценария ресурсов. |
| StringRegister | HRESULT StringRegister (LPCOLESTR данных ); Регистрирует сценарий в строке. данные содержат сам скрипт. |
| StringUnregister | HRESULT StringUnregister (LPCOLESTR данных ); Отменяет регистрацию сценарий в строку. данные содержат сам скрипт. |
ATL использует два метода, показанные в таблице (ResourceRegister и ResourceUnregister) в atlimpl.cpp:
LPCOLESTR szType = OLESTR("REGISTRY");
GetModuleFileName (pM-gt m_hInstResource, szModule, _MAX_PATH);
LPOLESTR pszModule = T2OLE(szModule);
Если (HIWORD(lpszRes)==0)
{
Если (bЗарегистрируйтесь участия)
hRes = p - > ResourceRegister (pszModule, ((UINT)LOWORD((DWORD)lpszRes)), szType);
остальное
hRes = p - > ResourceUnregister (pszModule, ((UINT)LOWORD((DWORD)lpszRes)), szType);
}
остальное
{
Если (bЗарегистрируйтесь участия)
hRes = p - > ResourceRegisterSz (pszModule, lpszRes, szType);
остальное
hRes = p - > ResourceUnregisterSz (pszModule, lpszRes, szType);
}
Обратите внимание, что szModule содержит значение из GetModuleFileName.
Два следующих методов, указанных в таблице, ResourceRegisterSz и ResourceUnregisterSz, похожие на ResourceRegister и ResourceUnregister, но можно указать идентификатор строки.
Методы FileRegister и FileUnregister являются полезными, если не требуется сценарий в ресурсе или если вы хотите, чтобы сценарий в собственном файле. Методы StringRegister и StringUnregister позволяют RGS-файл для хранения в динамически выделенные строки.