登錄和 TypeLib 全域函式
這些函式支援載入和註冊類型庫。
重要
下表所列的函式不能用於在 Windows 執行階段 中執行的應用程式。
名稱 | 描述 |
---|---|
AfxRegCreateKey | 建立指定的登錄機碼。 |
AfxRegDeleteKey | 刪除指定的登錄機碼。 |
AfxRegisterPreviewHandler | 註冊預覽處理常式的協助程式。 |
AfxUnregisterPreviewHandler | 用來取消註冊預覽處理常式的協助程式。 |
AtlRegisterTypeLib | 呼叫此函式可註冊類型程式庫。 |
AtlUnRegisterTypeLib | 呼叫此函式以取消註冊類型庫 |
AfxRegOpenKey | 開啟指定的登錄機碼。 |
AfxRegOpenKeyEx | 開啟指定的登錄機碼。 |
AtlLoadTypeLib | 呼叫此函式可載入類型程式庫。 |
AtlUpdateRegistryFromResourceD | 呼叫此函式可更新所提供資源的登錄。 |
RegistryDataExchange | 呼叫此函式可對系統登錄執行讀取或寫入。 由 登錄數據交換巨集呼叫。 |
這些函式會控制程式用來儲存資訊之登錄中的節點。
名稱 | 描述 |
---|---|
AtlGetPerUserRegistration | 擷取應用程式是否會將登錄存取重新導向至 HKEY_CURRENT_USER (HKCU) 節點。 |
AtlSetPerUserRegistration | 設定應用程式是否將登錄存取重新導向至 HKEY_CURRENT_USER ( HKCU) 節點。 |
需求
標頭: atlbase.h
AtlGetPerUserRegistration
使用此函式來判斷應用程式是否會將登錄存取重新導向至 HKEY_CURRENT_USER (HKCU) 節點。
語法
ATLINLINE ATLAPI AtlGetPerUserRegistration(bool* pEnabled);
參數
pEnabled
[out]TRUE 表示登錄信息會導向至 HKCU 節點;FALSE 表示應用程式會將登錄資訊寫入默認節點。 默認節點為 HKEY_CLASSES_ROOT (HKCR)。
傳回值
如果方法成功,則S_OK,否則發生錯誤時會傳回 HRESULT 錯誤碼。
備註
預設不會啟用登錄重新導向。 如果您啟用此選項,登錄存取會重新導向至 HKEY_CURRENT_USER\Software\Classes。
重新導向不是全域的。 只有 MFC 和 ATL 架構會受到此登錄重新導向的影響。
需求
標頭: atlbase.h
AfxRegCreateKey
建立指定的登錄機碼。
語法
LONG AFXAPI AfxRegCreateKey(HKEY hKey, LPCTSTR lpSubKey, PHKEY phkResult, CAtlTransactionManager* pTM = NULL);
參數
hKey
開啟登錄機碼的句柄。
lpSubKey
此函式開啟或建立的索引鍵名稱。
phkResult
接收已開啟或建立之索引鍵句柄之變數的指標。
pTM
指向 CAtlTransactionManager
物件的指標。
傳回值
如果函式成功,則傳回值會ERROR_SUCCESS。 如果函式失敗,傳回值是 Winerror.h 中定義的非零錯誤碼。
需求
Header: afxpriv.h
AfxRegDeleteKey
刪除指定的登錄機碼。
語法
LONG AFXAPI AfxRegDeleteKey(HKEY hKey, LPCTSTR lpSubKey, CAtlTransactionManager* pTM = NULL);
參數
hKey
開啟登錄機碼的句柄。
lpSubKey
要刪除之金鑰的名稱。
pTM
指向 CAtlTransactionManager
物件的指標。
傳回值
如果函式成功,則傳回值會ERROR_SUCCESS。 如果函式失敗,傳回值是 Winerror.h 中定義的非零錯誤碼。
需求
Header: afxpriv.h
註冊預覽處理常式的協助程式。
語法
BOOL AFXAPI AfxRegisterPreviewHandler(LPCTSTR lpszCLSID, LPCTSTR lpszShortTypeName, LPCTSTR lpszFilterExt);
參數
lpszCLSID
指定處理常式的 CLSID。
lpszShortTypeName
指定處理常式的 ProgID。
lpszFilterExt
指定已向此處理常式註冊的副檔名。
需求
標頭: afxdisp.h
AtlRegisterTypeLib
呼叫此函式可註冊類型程式庫。
ATLAPI AtlRegisterTypeLib(HINSTANCE hInstTypeLib, LPCOLESTR lpszIndex);
參數
hInstTypeLib
模組實例的句柄。
lpszIndex
格式為 “\\N” 的字串,其中 N 是類型庫資源的整數索引。 如果不需要任何索引,可以是 NULL。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
備註
AtlComModuleUnregisterServer 和 CAtlComModule::RegisterTypeLib 會使用此協助程式函式。
需求
標頭: atlbase.h
AfxRegOpenKey
開啟指定的登錄機碼。
語法
LONG AFXAPI AfxRegOpenKey(HKEY hKey, LPCTSTR lpSubKey, PHKEY phkResult, CAtlTransactionManager* pTM = NULL);
參數
hKey
開啟登錄機碼的句柄。
lpSubKey
此函式開啟或建立的索引鍵名稱。
phkResult
接收所建立索引鍵句柄之變數的指標。
pTM
指向 CAtlTransactionManager
物件的指標。
傳回值
如果函式成功,則傳回值會ERROR_SUCCESS。 如果函式失敗,傳回值是 Winerror.h 中定義的非零錯誤碼。
需求
Header: afxpriv.h
AfxRegOpenKeyEx
開啟指定的登錄機碼。
語法
LONG AFXAPI AfxRegOpenKeyEx(HKEY hKey, LPCTSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult, CAtlTransactionManager* pTM = NULL);
參數
hKey
開啟登錄機碼的句柄。
lpSubKey
此函式開啟或建立的索引鍵名稱。
ulOptions
此參數是保留的,而且必須是零。
samDesired
指定金鑰所需存取權限的遮罩。
phkResult
接收已開啟索引鍵句柄之變數的指標。
pTM
指向 CAtlTransactionManager
物件的指標。
傳回值
如果函式成功,則傳回值會ERROR_SUCCESS。 如果函式失敗,傳回值是 Winerror.h 中定義的非零錯誤碼。
需求
Header: afxpriv.h
AfxUnregisterPreviewHandler
用來取消註冊預覽處理常式的協助程式。
語法
BOOL AFXAPI AfxUnRegisterPreviewHandler(LPCTSTR lpszCLSID);
參數
lpszCLSID
指定要取消註冊之處理常式的 CLSID。
需求
標頭: afxdisp.h
AtlSetPerUserRegistration
設定應用程式是否會將登錄存取重新導向至 HKEY_CURRENT_USER (HKCU) 節點。
語法
ATLINLINE ATLAPI AtlSetPerUserRegistration(bool bEnable);
參數
bEnable
[in]TRUE 表示登錄信息會導向至 HKCU 節點;FALSE 表示應用程式會將登錄資訊寫入默認節點。 默認節點為 HKEY_CLASSES_ROOT (HKCR)。
傳回值
如果方法成功,則S_OK,否則發生錯誤時會傳回 HRESULT 錯誤碼。
備註
預設不會啟用登錄重新導向。 如果您啟用此選項,登錄存取會重新導向至 HKEY_CURRENT_USER\Software\Classes。
重新導向不是全域的。 只有 MFC 和 ATL 架構會受到此登錄重新導向的影響。
需求
標頭: atlbase.h
AtlUnRegisterTypeLib
呼叫此函式可解除類型程式庫的註冊。
語法
ATLAPI AtlUnRegisterTypeLib(
HINSTANCE hInstTypeLib,
LPCOLESTR lpszIndex);
參數
hInstTypeLib
模組實例的句柄。
lpszIndex
格式為 “\\N” 的字串,其中 N 是類型庫資源的整數索引。 如果不需要任何索引,可以是 NULL。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
備註
CAtlComModule::UnRegisterTypeLib 和 AtlComModuleUnregisterServer 會使用此協助程式函式。
需求
標頭: atlbase.h
AtlLoadTypeLib
呼叫此函式可載入類型程式庫。
語法
ATLINLINE ATLAPI AtlLoadTypeLib(
HINSTANCE hInstTypeLib,
LPCOLESTR lpszIndex,
BSTR* pbstrPath,
ITypeLib** ppTypeLib);
參數
hInstTypeLib
與類型連結庫相關聯的模組句柄。
lpszIndex
格式為 “\\N” 的字串,其中 N 是類型庫資源的整數索引。 如果不需要任何索引,可以是 NULL。
pbstrPath
成功傳回時,包含與類型連結庫相關聯的模組完整路徑。
ppTypeLib
成功傳回時,包含已載入類型連結庫指標的指標。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
備註
AtlRegisterTypeLib 和 AtlUnRegisterTypeLib 會使用此協助程式函式。
AtlUpdateRegistryFromResourceD
此函式在 Visual Studio 2013 中已被取代並在 Visual Studio 2015 中移除。
<removed>
RegistryDataExchange
呼叫此函式可對系統登錄執行讀取或寫入。
語法
HRESULT RegistryDataExchange(
T* pT,
enum RDXOperations rdxOp,
void* pItem = NULL);
參數
鉑
目前物件的指標。
rdxOp
列舉值,指出函式應該執行的作業。 如需允許的值,請參閱一節中的表格。
pItem
要讀取或寫入登錄之數據的指標。 數據也可以代表要從登錄中刪除的機碼。 預設值是 NULL。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
備註
巨集BEGIN_RDX_MAP,END_RDX_MAP展開至呼叫 RegistryDataExchange
的函式。
下表顯示指示函式應該執行的作業的可能列舉值:
列舉值 | 作業 |
---|---|
eReadFromReg | 從登錄讀取數據。 |
eWriteToReg | 將數據寫入登錄。 |
eDeleteFromReg | 從登錄中刪除機碼。 |
需求
標頭: atlbase.h