Застосування сценаріїв

Попереднього розділу, За допомогою параметрів змінних (реєстратора препроцесор), обговорювали заміни карт і представив двох методів у реєстроутримувача, AddReplacement і ClearReplacements. Реєстратор має вісім інших методів для створення сценаріїв. Всі вісім способів описано в нижченаведеній таблиці та викликати реєстратора на конкретного сценарію.

Метод Синтаксис/опис
ResourceRegister HRESULT ResourceRegister (LPCOLESTR resFileName, UINT nID, LPCOLESTR szType );

Регістри сценаріїв, містяться в в модуль ресурсів. resFileName вказує UNC-шлях до модуля, сама по собі. nID і szType містять ресурсів ID і типу, відповідно.

ResourceUnregister HRESULT ResourceUnregister (LPCOLESTR resFileName, UINT nID, LPCOLESTR szType );

Unregisters сценарію, що містяться в модуль, ресурс. resFileName вказує UNC-шлях до модуля, сама по собі. nID і szType містять ресурсів ID і типу, відповідно.

ResourceRegisterSz HRESULT ResourceRegisterSz (LPCOLESTR resFileName, LPCOLESTR szID, LPCOLESTR szType );

Регістри сценаріїв, містяться в в модуль ресурсів. resFileName вказує UNC-шлях до модуля, сама по собі. szID і szType містять ідентифікатор рядка ресурсів і типу, відповідно.

ResourceUnregisterSz HRESULT ResourceUnregisterSz (LPCOLESTR resFileName, LPCOLESTR szID, LPCOLESTR szType );

Unregisters сценарію, що містяться в модуль, ресурс. resFileName вказує UNC-шлях до модуля, сама по собі. szID і szType містять ідентифікатор рядка ресурсів і типу, відповідно.

FileRegister HRESULT FileRegister (LPCOLESTR ім'я файлу );

Регістри сценарій у файлі. ім'я файлу є UNC-шлях до файлу, що містить (або) ресурс сценарію.

FileUnregister HRESULT FileUnregister (LPCOLESTR ім'я файлу );

Unregisters сценарію у файлі. ім'я файлу є UNC-шлях до файлу, що містить (або) ресурс сценарію.

StringRegister HRESULT StringRegister (LPCOLESTR даних );

Регістри скрипт в рядку. дані містять самих скриптом.

StringUnregister HRESULT StringUnregister (LPCOLESTR даних );

Unregisters сценарію в рядку. дані містять самих скриптом.


ATL використовує перші два методи показано в таблиці (ResourceRegister і ResourceUnregister) в atlimpl.cpp:

LPCOLESTR-szType = OLESTR("REGISTRY");
GetModuleFileName (вечора gt m_hInstResource, szModule, _MAX_PATH);
LPOLESTR-pszModule = T2OLE(szModule);

Якщо (HIWORD(lpszRes)==0)
{
   Якщо (bRegister)
     hRes = p - > ResourceRegister (pszModule, ((UINT)LOWORD((DWORD)lpszRes)), szType);
   інше
     hRes = p - > ResourceUnregister (pszModule, ((UINT)LOWORD((DWORD)lpszRes)), szType);
}
інше
{
   Якщо (bRegister)
     hRes = p - > ResourceRegisterSz (pszModule, lpszRes, szType);
   інше
     hRes = p - > ResourceUnregisterSz (pszModule, lpszRes, szType);
}

Зверніть увагу, що szModule містить значення, які придбали від GetModuleFileName.

Наступні два методи показано в таблиці, ResourceRegisterSz і ResourceUnregisterSz, подібні до ResourceRegister і ResourceUnregister, але дозволяють визначити ідентифікатор рядка.

Методи, FileRegister і FileUnregister є корисними, якщо ви не хочете, щоб сценарій в ресурсу, або якщо ви хочете, щоб сценарій в окремий файл. Методи, StringRegister і StringUnregister дозволити збереження у динамічно розподіляється рядок файлу .rgs.

Index