Aracılığıyla paylaş


CRegKey Sınıf

Bu sınıf, sistem kayıt defterindeki girdileri işlemek için yöntemler sağlar.

Önemli

Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

Sözdizimi

class CRegKey

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CRegKey::CRegKey Oluşturucu.
CRegKey::~CRegKey Yok edici.

Genel Yöntemler

Veri Akışı Adı Açıklama
CRegKey::Attach Üye tutamacını CRegKey olarak ayarlayarak nesneye bir HKEY eklemek için hKeybu yöntemi çağırınm_hKey.
CRegKey::Close Üye tanıtıcısını m_hKey serbest bırakmak ve olarak ayarlamak için NULLbu yöntemi çağırın.
CRegKey::Create Alt anahtarı yoksa belirtilen anahtarı oluşturmak için bu yöntemi çağırın hKeyParent.
CRegKey::DeleteSubKey Belirtilen anahtarı kayıt defterinden kaldırmak için bu yöntemi çağırın.
CRegKey::DeleteValue 'den bir değer alanını kaldırmak için bu yöntemi çağırabilirsiniz m_hKey.
CRegKey::Detach Üye tanıtıcısını m_hKey nesnesinden CRegKey ayırmak ve olarak ayarlamak m_hKey için NULLbu yöntemi çağırın.
CRegKey::EnumKey Açık kayıt defteri anahtarının alt anahtarlarını numaralandırmak için bu yöntemi çağırın.
CRegKey::Flush Açık kayıt defteri anahtarının tüm özniteliklerini kayıt defterine yazmak için bu yöntemi çağırın.
CRegKey::GetKeySecurity Açık kayıt defteri anahtarını koruyan güvenlik tanımlayıcısının bir kopyasını almak için bu yöntemi çağırın.
CRegKey::NotifyChangeKeyValue Bu yöntem, çağıranı açık kayıt defteri anahtarının özniteliklerinde veya içeriğinde yapılan değişiklikler hakkında bilgilendirir.
CRegKey::Open Belirtilen anahtarı açmak ve bu anahtarın tanıtıcısına ayarlamak m_hKey için bu yöntemi çağırın.
CRegKey::QueryBinaryValue Belirtilen değer adı için ikili verileri almak için bu yöntemi çağırın.
CRegKey::QueryDWORDValue Belirtilen değer adına ilişkin DWORD verileri almak için bu yöntemi çağırın.
CRegKey::QueryGUIDValue Belirtilen değer adı için GUID verilerini almak için bu yöntemi çağırın.
CRegKey::QueryMultiStringValue Belirtilen değer adı için çok dizeli verileri almak için bu yöntemi çağırın.
CRegKey::QueryQWORDValue Belirtilen değer adına ilişkin QWORD verileri almak için bu yöntemi çağırın.
CRegKey::QueryStringValue Belirtilen değer adı için dize verilerini almak için bu yöntemi çağırın.
CRegKey::QueryValue belirtilen değer alanının verilerini almak için bu yöntemi çağırın m_hKey. Bu yöntemin önceki sürümleri artık desteklenmiyor ve olarak ATL_DEPRECATEDişaretleniyor.
CRegKey::RecurseDeleteKey Belirtilen anahtarı kayıt defterinden kaldırmak ve herhangi bir alt anahtarı açıkça kaldırmak için bu yöntemi çağırın.
CRegKey::SetBinaryValue Kayıt defteri anahtarının ikili değerini ayarlamak için bu yöntemi çağırın.
CRegKey::SetDWORDValue Kayıt defteri anahtarının DWORD değerini ayarlamak için bu yöntemi çağırın.
CRegKey::SetGUIDValue Kayıt defteri anahtarının GUID değerini ayarlamak için bu yöntemi çağırın.
CRegKey::SetKeySecurity Kayıt defteri anahtarının güvenliğini ayarlamak için bu yöntemi çağırın.
CRegKey::SetKeyValue Verileri belirtilen anahtarın belirtilen değer alanında depolamak için bu yöntemi çağırın.
CRegKey::SetMultiStringValue Kayıt defteri anahtarının çok dizeli değerini ayarlamak için bu yöntemi çağırın.
CRegKey::SetQWORDValue Kayıt defteri anahtarının QWORD değerini ayarlamak için bu yöntemi çağırın.
CRegKey::SetStringValue Kayıt defteri anahtarının dize değerini ayarlamak için bu yöntemi çağırın.
CRegKey::SetValue Verileri belirtilen değer alanında depolamak için bu yöntemi çağırın m_hKey. Bu yöntemin önceki sürümleri artık desteklenmiyor ve olarak ATL_DEPRECATEDişaretleniyor.

Ortak İşleçler

Veri Akışı Adı Açıklama
CRegKey::operator HKEY Bir CRegKey nesneyi öğesine HKEYdönüştürür.
CRegKey::operator = Atama işleci.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
CRegKey::m_hKey Nesneyle ilişkili kayıt defteri anahtarının tanıtıcısını CRegKey içerir.
CRegKey::m_pTM Nesne işaretçisi CAtlTransactionManager

Açıklamalar

CRegKey , sistem kayıt defterinde anahtar ve değerleri oluşturmak ve silmek için yöntemler sağlar. Kayıt defteri, yazılım sürüm numaraları, yüklü donanımın mantıksal-fiziksel eşlemeleri ve COM nesneleri gibi sistem bileşenleri için yüklemeye özgü bir tanım kümesi içerir.

CRegKey belirli bir makine için sistem kayıt defterine bir programlama arabirimi sağlar. Örneğin, belirli bir kayıt defteri anahtarını açmak için çağrısında bulunur CRegKey::Open. Bir veri değerini almak veya değiştirmek için sırasıyla veya CRegKey::SetValueçağrısı CRegKey::QueryValue gerçekleştirin. Bir anahtarı kapatmak için öğesini arayın CRegKey::Close.

Bir anahtarı kapattığınızda, bu anahtarın kayıt defteri verileri sabit diske yazılır (temizlenir). Bu işlem birkaç saniye sürebilir. Uygulamanızın kayıt defteri verilerini sabit diske açıkça yazması gerekiyorsa Win32 işlevini çağırabilirsiniz RegFlushKey . Ancak, RegFlushKey birçok sistem kaynağı kullanır ve yalnızca kesinlikle gerekli olduğunda çağrılmalıdır.

Önemli

Çağıranın bir kayıt defteri konumu belirtmesine izin veren tüm yöntemler, güvenilemeyen verileri okuma potansiyeline sahiptir. kullanan RegQueryValueEx yöntemler, bu işlevin null sonlandırılan dizeleri açıkça işlemediğini dikkate almalıdır. Her iki koşul da çağrı kodu tarafından denetlenmelidir.

Gereksinimler

Üstbilgi: atlbase.h

CRegKey::Attach

Üye tutamacını CRegKey olarak ayarlayarak nesnesine bir HKEY eklemek için hKeybu yöntemi çağırınm_hKey.

void Attach(HKEY hKey) throw();

Parametreler

hKey
Kayıt defteri anahtarının tanıtıcısı.

Açıklamalar

Attach, değilse m_hKeyNULLonaylar.

CRegKey::Close

Üye tanıtıcısını m_hKey serbest bırakmak ve olarak ayarlamak için NULLbu yöntemi çağırın.

LONG Close() throw();

Dönüş Değeri

Başarılı olursa döndürür ERROR_SUCCESS; aksi takdirde bir hata değeri döndürür.

CRegKey::Create

Alt anahtarı yoksa belirtilen anahtarı oluşturmak için bu yöntemi çağırın hKeyParent.

LONG Create(
    HKEY hKeyParent,
    LPCTSTR lpszKeyName,
    LPTSTR lpszClass = REG_NONE,
    DWORD dwOptions = REG_OPTION_NON_VOLATILE,
    REGSAM samDesired = KEY_READ | KEY_WRITE,
    LPSECURITY_ATTRIBUTES lpSecAttr = NULL,
    LPDWORD lpdwDisposition = NULL) throw();

Parametreler

hKeyParent
Açık anahtarın tutamacı.

lpszKeyName
Oluşturulacak veya açılacak anahtarın adını belirtir. Bu ad alt anahtarı hKeyParentolmalıdır.

lpszClass
Oluşturulacak veya açılacak anahtarın sınıfını belirtir. Varsayılan değer REG_NONE.

dwOptions
Anahtar seçenekleri. Varsayılan değer şudur: REG_OPTION_NON_VOLATILE. Olası değerlerin ve açıklamaların listesi için Bkz RegCreateKeyEx . Windows SDK'sında.

samDesired
Anahtarın güvenlik erişimi. Varsayılan değer şudur: KEY_READ | KEY_WRITE. Olası değerlerin ve açıklamaların listesi için bkz RegCreateKeyEx. .

lpSecAttr
Anahtarın tutamacının bir SECURITY_ATTRIBUTES alt işlem tarafından devralınıp devralınamayacağını gösteren bir yapı işaretçisi. Varsayılan olarak, bu parametredir NULL (tanıtıcı devralınamaz).

lpdwDisposition
[out] NULLDeğilse, (anahtar yoksa ve oluşturulduysa) veya REG_OPENED_EXISTING_KEY (anahtar mevcutsa ve açıldıysa) alır REG_CREATED_NEW_KEY .

Dönüş Değeri

Başarılı olursa, döndürür ERROR_SUCCESS ve anahtarı açar. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Create üyeyi m_hKey bu anahtarın tanıtıcısına ayarlar.

CRegKey::CRegKey

Oluşturucu.

CRegKey() throw();
CRegKey(CRegKey& key) throw();
explicit CRegKey(HKEY hKey) throw();
CRegKey(CAtlTransactionManager* pTM) throw();

Parametreler

key
Bir nesneye CRegKey başvuru.

hKey
Kayıt defteri anahtarının tanıtıcısı.

pTM
Nesne işaretçisi CAtlTransactionManager

Açıklamalar

Yeni CRegKey bir nesne oluşturur. Nesne var olan CRegKey bir nesneden veya bir tanıtıcıdan kayıt defteri anahtarına oluşturulabilir.

CRegKey::~CRegKey

Yok edici.

~CRegKey() throw();

Açıklamalar

Yıkıcı serbest bırakır m_hKey.

CRegKey::DeleteSubKey

Belirtilen anahtarı kayıt defterinden kaldırmak için bu yöntemi çağırın.

LONG DeleteSubKey(LPCTSTR lpszSubKey) throw();

Parametreler

lpszSubKey
Silinecek anahtarın adını belirtir. Bu ad alt anahtarı m_hKeyolmalıdır.

Dönüş Değeri

Başarılı olursa döndürür ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

DeleteSubKey yalnızca alt anahtarı olmayan bir anahtarı silebilir. Anahtarın alt anahtarları varsa, bunun yerine çağrısı RecurseDeleteKey yapın.

CRegKey::DeleteValue

'den bir değer alanını kaldırmak için bu yöntemi çağırabilirsiniz m_hKey.

LONG DeleteValue(LPCTSTR lpszValue) throw();

Parametreler

lpszValue
Kaldırılacak değer alanını belirtir.

Dönüş Değeri

Başarılı olursa döndürür ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

CRegKey::Detach

Üye tanıtıcısını m_hKey nesnesinden CRegKey ayırmak ve olarak ayarlamak m_hKey için NULLbu yöntemi çağırın.

HKEY Detach() throw();

Dönüş Değeri

Nesneyle CRegKey ilişkilendirilmiş HKEY.

CRegKey::EnumKey

Açık kayıt defteri anahtarının alt anahtarlarını numaralandırmak için bu yöntemi çağırın.

LONG EnumKey(
    DWORD iIndex,
    LPTSTR pszName,
    LPDWORD pnNameLength,
    FILETIME* pftLastWriteTime = NULL) throw();

Parametreler

iIndex
Alt anahtar dizini. Bu parametre ilk çağrı için sıfır olmalı ve ardından sonraki çağrılar için artırılmalıdır

pszName
Sonlandırıcı null karakter de dahil olmak üzere alt anahtarın adını alan bir arabelleğe yönelik işaretçi. Yalnızca alt anahtarın adı arabelleğe kopyalanır, tam anahtar hiyerarşisine kopyalanmaz.

pnNameLength
parametresi tarafından belirtilen arabellek boyutunu TCHARsbelirten bir değişkenin işaretçisi pszName . Bu boyut, sonlandırıcı null karakteri içermelidir. Yöntemi döndürdüğünde, tarafından pnNameLength işaret edilen değişken arabellekte depolanan karakter sayısını içerir. Döndürülen sayı, sonlandırıcı null karakteri içermez.

pftLastWriteTime
Numaralandırılmış alt anahtarın son yazıldığı zamanı alan değişken işaretçisi.

Dönüş Değeri

Yöntem başarılı olursa, dönüş değeri olur ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Alt anahtarları numaralandırmak için sıfır dizinini çağırın CRegKey::EnumKey . Dizin değerini artırıp yöntemi döndürene ERROR_NO_MORE_ITEMSkadar yineleyin. Daha fazla bilgi için bkz RegEnumKeyEx . Windows SDK'sı.

CRegKey::Flush

Açık kayıt defteri anahtarının tüm özniteliklerini kayıt defterine yazmak için bu yöntemi çağırın.

LONG Flush() throw();

Dönüş Değeri

Yöntem başarılı olursa, dönüş değeri olur ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Daha fazla bilgi için bkz RegEnumFlush . Windows SDK'sı.

CRegKey::GetKeySecurity

Açık kayıt defteri anahtarını koruyan güvenlik tanımlayıcısının bir kopyasını almak için bu yöntemi çağırın.

LONG GetKeySecurity(
    SECURITY_INFORMATION si,
    PSECURITY_DESCRIPTOR psd,
    LPDWORD pnBytes) throw();

Parametreler

si
SECURITY_INFORMATION İstenen güvenlik bilgilerini gösteren değer.

psd
İstenen güvenlik tanımlayıcısının bir kopyasını alan arabellek işaretçisi.

pnBytes
tarafından psdişaret edilen arabelleğin bayt cinsinden boyutu.

Dönüş Değeri

Yöntem başarılı olursa, dönüş değeri olur ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Daha fazla bilgi için bkz. RegGetKeySecurity.

CRegKey::m_hKey

Nesneyle ilişkili kayıt defteri anahtarının tanıtıcısını CRegKey içerir.

HKEY m_hKey;

CRegKey::m_pTM

Nesne CAtlTransactionManager işaretçisi.

CAtlTransactionManager* m_pTM;

Açıklamalar

CRegKey::NotifyChangeKeyValue

Bu yöntem, çağıranı açık kayıt defteri anahtarının özniteliklerinde veya içeriğinde yapılan değişiklikler hakkında bilgilendirir.

LONG NotifyChangeKeyValue(
    BOOL bWatchSubtree,
    DWORD dwNotifyFilter,
    HANDLE hEvent,
    BOOL bAsync = TRUE) throw();

Parametreler

bWatchSubtree
Belirtilen anahtarda ve tüm alt anahtarlarında veya yalnızca belirtilen anahtarda değişiklikleri raporlayıp raporlamayacağını belirten bir bayrak belirtir. Bu parametre ise TRUEyöntemi anahtardaki ve alt anahtarlarındaki değişiklikleri bildirir. parametresi ise FALSE, yöntem raporları yalnızca anahtarda değişiklik gösterir.

dwNotifyFilter
Hangi değişikliklerin bildirilmesi gerektiğini denetleyen bir bayrak kümesi belirtir. Bu parametre aşağıdaki değerlerin bir bileşimi olabilir:

Değer Anlamı
REG_NOTIFY_CHANGE_NAME Alt anahtar eklenip eklenmediğini veya silindiğini çağıranı bilgilendirin.
REG_NOTIFY_CHANGE_ATTRIBUTES Güvenlik tanımlayıcısı bilgileri gibi anahtarın özniteliklerinde yapılan değişiklikleri çağıranı bilgilendirin.
REG_NOTIFY_CHANGE_LAST_SET Anahtar değerindeki değişiklikleri çağıranı bilgilendirin. Bu, değer eklemeyi veya silmeyi ya da var olan bir değeri değiştirmeyi içerebilir.
REG_NOTIFY_CHANGE_SECURITY Anahtarın güvenlik tanımlayıcısına yapılan değişiklikleri çağıranı bilgilendirin.

hEvent
Bir olaya işleme. bAsync parametresi iseTRUE, yöntemi hemen döndürür ve bu olaya işaret gönderilerek değişiklikler bildirilir. ise bAsync FALSEhEvent yoksayılır.

bAsync
Yönteminin nasıl değiştiğini gösteren bir bayrak belirtir. Bu parametre ise TRUEyöntemi hemen döndürür ve belirtilen olayı işaretleyerek değişiklikleri bildirir. Bu parametre olduğunda FALSE, yöntem bir değişiklik gerçekleşene kadar döndürmez. hEvent Geçerli bir olay belirtmezse parametresi bAsync olamazTRUE.

Dönüş Değeri

Yöntem başarılı olursa, dönüş değeri olur ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Not

Bu yöntem, belirtilen anahtar silinirse çağıranı bilgilendirmez.

Diğer ayrıntılar ve örnek bir program için bkz RegNotifyChangeKeyValue. .

CRegKey::Open

Belirtilen anahtarı açmak ve bu anahtarın tanıtıcısına ayarlamak m_hKey için bu yöntemi çağırın.

LONG Open(
    HKEY hKeyParent,
    LPCTSTR lpszKeyName,
    REGSAM samDesired = KEY_READ | KEY_WRITE) throw();

Parametreler

hKeyParent
Açık anahtarın tutamacı.

lpszKeyName
Oluşturulacak veya açılacak anahtarın adını belirtir. Bu ad alt anahtarı hKeyParentolmalıdır.

samDesired
Anahtarın güvenlik erişimi. Varsayılan değer şudur: KEY_ALL_ACCESS. Olası değerlerin ve açıklamaların listesi için Bkz RegCreateKeyEx . Windows SDK'sında.

Dönüş Değeri

Başarılı olursa döndürür ERROR_SUCCESS; aksi takdirde, içinde WINERROR.Htanımlanan sıfır olmayan bir hata değeri döndürür.

Açıklamalar

lpszKeyName Parametresi boş bir dizeyse NULL veya bu dizeyi işaret ederse, Open tarafından hKeyParenttanımlanan anahtarın yeni bir tutamacını açar, ancak daha önce açılmış tanıtıcıyı kapatmaz.

Open'nin aksineCRegKey::Create, mevcut değilse belirtilen anahtarı oluşturmaz.

CRegKey::operator HKEY

Bir CRegKey nesneyi öğesine HKEYdönüştürür.

operator HKEY() const throw();

CRegKey::operator =

Atama işleci.

CRegKey& operator= (CRegKey& key) throw();

Parametreler

key
Kopyalanacak anahtar.

Dönüş Değeri

Yeni anahtara başvuru döndürür.

Açıklamalar

Bu işleç geçerli nesnesinden ayrılır key ve bunun yerine nesneye CRegKey atar.

CRegKey::QueryBinaryValue

Belirtilen değer adı için ikili verileri almak için bu yöntemi çağırın.

LONG QueryBinaryValue(
    LPCTSTR pszValueName,
    void* pValue,
    ULONG* pnBytes) throw();

Parametreler

pszValueName
Sorgulanması gereken değerin adını içeren - sonlandırılan bir NULLdizenin işaretçisi.

pValue
Değerin verilerini alan arabelleğe yönelik işaretçi.

pnBytes
parametresi tarafından işaret edilen arabelleğin boyutunu bayt cinsinden belirten bir değişkenin işaretçisi pValue . Yöntemi döndürdüğünde, bu değişken arabelleğe kopyalanan verilerin boyutunu içerir.

Dönüş Değeri

Yöntem başarılı olursa, ERROR_SUCCESS döndürülür. Yöntem bir değeri okuyamıyorsa, içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodu döndürür. Başvuruda bulunan veriler türünde REG_BINARYERROR_INVALID_DATA değilse döndürülür.

Açıklamalar

Bu yöntem kullanır RegQueryValueEx ve doğru veri türünün döndürüldüğünü onaylar. Diğer ayrıntılar için bkz RegQueryValueEx .

Önemli

Bu yöntem, çağıranın herhangi bir kayıt defteri konumu belirtmesine olanak tanır ve güvenilir olmayan verileri okuma olasılığı vardır. Ayrıca, RegQueryValueEx bu yöntem tarafından kullanılan işlev null-sonlandırılan dizeleri açıkça işlemez. Her iki koşul da çağrı kodu tarafından denetlenmelidir.

CRegKey::QueryDWORDValue

Belirtilen değer adına ilişkin DWORD verileri almak için bu yöntemi çağırın.

LONG QueryDWORDValue(
    LPCTSTR pszValueName,
    DWORD& dwValue) throw();

Parametreler

pszValueName
Sorgulanması gereken değerin adını içeren - sonlandırılan bir NULLdizenin işaretçisi.

dwValue
öğesini alan bir arabelleğe yönelik DWORDişaretçi.

Dönüş Değeri

Yöntem başarılı olursa, ERROR_SUCCESS döndürülür. Yöntem bir değeri okuyamıyorsa, içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodu döndürür. Başvuruda bulunan veriler türünde REG_DWORDERROR_INVALID_DATA değilse döndürülür.

Açıklamalar

Bu yöntem kullanır RegQueryValueEx ve doğru veri türünün döndürüldüğünü onaylar. Diğer ayrıntılar için bkz RegQueryValueEx .

Önemli

Bu yöntem, çağıranın herhangi bir kayıt defteri konumu belirtmesine olanak tanır ve güvenilir olmayan verileri okuma olasılığı vardır. Ayrıca, RegQueryValueEx bu yöntem tarafından kullanılan işlev null-sonlandırılan dizeleri açıkça işlemez. Her iki koşul da çağrı kodu tarafından denetlenmelidir.

CRegKey::QueryGUIDValue

Belirtilen değer adı için GUID verilerini almak için bu yöntemi çağırın.

LONG QueryGUIDValue(
    LPCTSTR pszValueName,
    GUID& guidValue) throw();

Parametreler

pszValueName
Sorgulanması gereken değerin adını içeren - sonlandırılan bir NULLdizenin işaretçisi.

guidValue
GUID'yi alan bir değişkenin işaretçisi.

Dönüş Değeri

Yöntem başarılı olursa, ERROR_SUCCESS döndürülür. Yöntem bir değeri okuyamıyorsa, içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodu döndürür. Başvuruda bulunan veriler geçerli bir GUID değilse döndürülür ERROR_INVALID_DATA .

Açıklamalar

Bu yöntem kullanarak dizesini CRegKey::QueryStringValue kullanır ve guid'ye CLSIDFromStringdönüştürür.

Önemli

Bu yöntem, çağıranın herhangi bir kayıt defteri konumu belirtmesine olanak tanır ve güvenilir olmayan verileri okuma olasılığı vardır.

CRegKey::QueryMultiStringValue

Belirtilen değer adı için çok dizeli verileri almak için bu yöntemi çağırın.

LONG QueryMultiStringValue(
    LPCTSTR pszValueName,
    LPTSTR pszValue,
    ULONG* pnChars) throw();

Parametreler

pszValueName
Sorgulanması gereken değerin adını içeren - sonlandırılan bir NULLdizenin işaretçisi.

pszValue
Çoklu dize verilerini alan arabelleğe yönelik işaretçi. Çoklu dize, iki null karakterle sonlandırılan - sonlandırılan dizelerden oluşan NULLbir dizidir.

pnChars
tarafından işaret edilen pszValuearabelleğin içindeki boyutuTCHARs. Yöntemi döndürdüğünde, pnChars TCHARsalınan çok dizeli dizenin boyutunu (sonlandırıcı null karakter de dahil) içerir.

Dönüş Değeri

Yöntem başarılı olursa, ERROR_SUCCESS döndürülür. Yöntem bir değeri okuyamıyorsa, içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodu döndürür. Başvuruda bulunan veriler türünde REG_MULTI_SZERROR_INVALID_DATA değilse döndürülür.

Açıklamalar

Bu yöntem kullanır RegQueryValueEx ve doğru veri türünün döndürüldüğünü onaylar. Diğer ayrıntılar için bkz RegQueryValueEx .

Önemli

Bu yöntem, çağıranın herhangi bir kayıt defteri konumu belirtmesine olanak tanır ve güvenilir olmayan verileri okuma olasılığı vardır. Ayrıca, RegQueryValueEx bu yöntem tarafından kullanılan işlev null-sonlandırılan dizeleri açıkça işlemez. Her iki koşul da çağrı kodu tarafından denetlenmelidir.

CRegKey::QueryQWORDValue

Belirtilen değer adına ilişkin QWORD verileri almak için bu yöntemi çağırın.

LONG QueryQWORDValue(
    LPCTSTR pszValueName,
    ULONGLONG& qwValue) throw();

Parametreler

pszValueName
Sorgulanması gereken değerin adını içeren - sonlandırılan bir NULLdizenin işaretçisi.

qwValue
öğesini alan bir arabelleğe yönelik QWORDişaretçi.

Dönüş Değeri

Yöntem başarılı olursa, ERROR_SUCCESS döndürülür. Yöntem bir değeri okuyamıyorsa, içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodu döndürür. Başvuruda bulunan veriler türünde REG_QWORDERROR_INVALID_DATA değilse döndürülür.

Açıklamalar

Bu yöntem kullanır RegQueryValueEx ve doğru veri türünün döndürüldüğünü onaylar. Diğer ayrıntılar için bkz RegQueryValueEx .

Önemli

Bu yöntem, çağıranın herhangi bir kayıt defteri konumu belirtmesine olanak tanır ve güvenilir olmayan verileri okuma olasılığı vardır. Ayrıca, RegQueryValueEx bu yöntem tarafından kullanılan işlev null-sonlandırılan dizeleri açıkça işlemez. Her iki koşul da çağrı kodu tarafından denetlenmelidir.

CRegKey::QueryStringValue

Belirtilen değer adı için dize verilerini almak için bu yöntemi çağırın.

LONG QueryStringValue(
    LPCTSTR pszValueName,
    LPTSTR pszValue,
    ULONG* pnChars) throw();

Parametreler

pszValueName
Sorgulanması gereken değerin adını içeren - sonlandırılan bir NULLdizenin işaretçisi.

pszValue
Dize verilerini alan arabelleğe yönelik işaretçi.

pnChars
tarafından pszValueişaret edilen arabelleğin TCHAR'lardaki boyutu. Yöntemi döndürdüğünde, pnChars TCHARsalınan dizenin boyutunu (sonlandırıcı null karakter de dahil) içerir.

Dönüş Değeri

Yöntem başarılı olursa, ERROR_SUCCESS döndürülür. Yöntem bir değeri okuyamıyorsa, içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodu döndürür. Başvuruda bulunan veriler türünde REG_SZERROR_INVALID_DATA değilse döndürülür. yöntemi döndürürseERROR_MORE_DATApnChars, bayt cinsinden gerekli arabellek boyutuna değil sıfıra eşittir.

Açıklamalar

Bu yöntem kullanır RegQueryValueEx ve doğru veri türünün döndürüldüğünü onaylar. Diğer ayrıntılar için bkz RegQueryValueEx .

Önemli

Bu yöntem, çağıranın herhangi bir kayıt defteri konumu belirtmesine olanak tanır ve güvenilir olmayan verileri okuma olasılığı vardır. Ayrıca, RegQueryValueEx bu yöntem tarafından kullanılan işlev null-sonlandırılan dizeleri açıkça işlemez. Her iki koşul da çağrı kodu tarafından denetlenmelidir.

CRegKey::QueryValue

belirtilen değer alanının verilerini almak için bu yöntemi çağırın m_hKey. Bu yöntemin önceki sürümleri artık desteklenmiyor ve olarak ATL_DEPRECATEDişaretleniyor.

LONG QueryValue(
    LPCTSTR pszValueName,
    DWORD* pdwType,
    void* pData,
    ULONG* pnBytes) throw();

ATL_DEPRECATED LONG QueryValue(
    DWORD& dwValue,
    LPCTSTR lpszValueName);

ATL_DEPRECATED LONG QueryValue(
    LPTSTR szValue,
    LPCTSTR lpszValueName,
    DWORD* pdwCount);

Parametreler

pszValueName
Sorgulanması gereken değerin adını içeren - sonlandırılan bir NULLdizenin işaretçisi. veya boş bir dizeyse pszValueName NULL , ""yöntemi anahtarın adsız veya varsa varsayılan değerinin türünü ve verilerini alır.

pdwType
Belirtilen değerde depolanan veri türünü belirten bir kod alan değişken işaretçisi. pdwType Tür kodu gerekli değilse parametresi olabilirNULL.

pData
Değerin verilerini alan arabelleğe yönelik işaretçi. Bu parametre, veriler gerekli değilse olabilir NULL .

pnBytes
parametresi tarafından işaret edilen arabelleğin boyutunu bayt cinsinden belirten bir değişkenin işaretçisi pData . Yöntemi döndürdüğünde, bu değişken öğesine kopyalanan pDataverilerin boyutunu içerir.

dwValue
Değer alanının sayısal verileri.

lpszValueName
Sorgulanacak değer alanını belirtir.

szValue
Değer alanının dize verileri.

pdwCount
Dize verilerinin boyutu. Değeri başlangıçta arabellek boyutuna szValue ayarlanır.

Dönüş Değeri

Başarılı olursa döndürür ERROR_SUCCESS; aksi takdirde, içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodu döndürür.

Açıklamalar

İki özgün sürümü QueryValue artık desteklenmez ve olarak ATL_DEPRECATEDişaretlenir. Bu formlar kullanılırsa derleyici bir uyarı yayınlar.

Kalan yöntem çağırır RegQueryValueEx.

Önemli

Bu yöntem, çağıranın herhangi bir kayıt defteri konumu belirtmesine olanak tanır ve güvenilir olmayan verileri okuma olasılığı vardır. Ayrıca, RegQueryValueEx bu yöntem tarafından kullanılan işlev null-sonlandırılan dizeleri açıkça işlemez. Her iki koşul da çağrı kodu tarafından denetlenmelidir.

CRegKey::RecurseDeleteKey

Belirtilen anahtarı kayıt defterinden kaldırmak ve herhangi bir alt anahtarı açıkça kaldırmak için bu yöntemi çağırın.

LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();

Parametreler

lpszKey
Silinecek anahtarın adını belirtir. Bu ad alt anahtarı m_hKeyolmalıdır.

Dönüş Değeri

Başarılı olursa döndürür ERROR_SUCCESS; aksi takdirde, içinde WINERROR.Htanımlanan sıfır olmayan bir hata değeri döndürür.

Açıklamalar

Anahtarın alt anahtarları varsa, anahtarı silmek için bu yöntemi çağırmanız gerekir.

CRegKey::SetBinaryValue

Kayıt defteri anahtarının ikili değerini ayarlamak için bu yöntemi çağırın.

LONG SetBinaryValue(
    LPCTSTR pszValueName,
    const void* pValue,
    ULONG nBytes) throw();

Parametreler

pszValueName
Ayarlanacağı değerin adını içeren bir dizenin işaretçisi. Bu ada sahip bir değer henüz yoksa yöntemi bunu anahtara ekler.

pValue
Belirtilen değer adıyla depolanacak verileri içeren arabelleğe yönelik işaretçi.

nBytes
parametresi tarafından işaret edilen pValue bilgilerin boyutunu bayt cinsinden belirtir.

Dönüş Değeri

Yöntem başarılı olursa, dönüş değeri olur ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Bu yöntem, değerini kayıt defterine yazmak için kullanır RegSetValueEx .

CRegKey::SetDWORDValue

Kayıt defteri anahtarının DWORD değerini ayarlamak için bu yöntemi çağırın.

LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) throw();

Parametreler

pszValueName
Ayarlanacağı değerin adını içeren bir dizenin işaretçisi. Bu ada sahip bir değer henüz yoksa yöntemi bunu anahtara ekler.

dwValue
DWORD Belirtilen değer adıyla depolanacak veriler.

Dönüş Değeri

Yöntem başarılı olursa, dönüş değeri olur ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Bu yöntem, değerini kayıt defterine yazmak için kullanır RegSetValueEx .

CRegKey::SetGUIDValue

Kayıt defteri anahtarının GUID değerini ayarlamak için bu yöntemi çağırın.

LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) throw();

Parametreler

pszValueName
Ayarlanacağı değerin adını içeren bir dizenin işaretçisi. Bu ada sahip bir değer henüz yoksa yöntemi bunu anahtara ekler.

guidValue
Belirtilen değer adıyla depolanacak GUID'ye başvuru.

Dönüş Değeri

Yöntem başarılı olursa, dönüş değeri olur ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Bu yöntem, kullanır CRegKey::SetStringValue ve kullanarak StringFromGUID2GUID'yi bir dizeye dönüştürür.

CRegKey::SetKeyValue

Verileri belirtilen anahtarın belirtilen değer alanında depolamak için bu yöntemi çağırın.

LONG SetKeyValue(
    LPCTSTR lpszKeyName,
    LPCTSTR lpszValue,
    LPCTSTR lpszValueName = NULL) throw();

Parametreler

lpszKeyName
Oluşturulacak veya açılacak anahtarın adını belirtir. Bu ad alt anahtarı m_hKeyolmalıdır.

lpszValue
Depolanacak verileri belirtir. Bu parametre olmayanNULL olmalıdır.

lpszValueName
Ayarlanacak değer alanını belirtir. Anahtarda bu ada sahip bir değer alanı yoksa eklenir.

Dönüş Değeri

Başarılı olursa döndürür ERROR_SUCCESS; aksi takdirde, içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodu döndürür.

Açıklamalar

Anahtarı oluşturmak veya açmak lpszKeyName ve verileri değer alanında depolamak lpszValue için bu yöntemi çağırın lpszValueName .

CRegKey::SetKeySecurity

Kayıt defteri anahtarının güvenliğini ayarlamak için bu yöntemi çağırın.

LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd) throw();

Parametreler

si
Ayarlanacağı güvenlik tanımlayıcısının bileşenlerini belirtir. Değer, aşağıdaki değerlerin bir bileşimi olabilir:

Değer Anlamı
DACL_SECURITY_INFORMATION Anahtarın isteğe bağlı erişim denetimi listesini (DACL) ayarlar. Anahtarın erişimi olmalıdır WRITE_DAC veya çağıran işlem nesnenin sahibi olmalıdır.
GROUP_SECURITY_INFORMATION Anahtarın birincil grup güvenlik tanımlayıcısını (SID) ayarlar. Anahtarın erişimi olmalıdır WRITE_OWNER veya çağıran işlem nesnenin sahibi olmalıdır.
OWNER_SECURITY_INFORMATION Anahtarın sahip SID'sini ayarlar. Anahtarın erişimi olmalıdır WRITE_OWNER veya çağıran işlemin nesnenin sahibi olması veya ayrıcalığı SE_TAKE_OWNERSHIP_NAME etkinleştirilmiş olması gerekir.
SACL_SECURITY_INFORMATION Anahtarın sistem erişim denetimi listesini (SACL) ayarlar. Anahtarın erişimi olmalıdır ACCESS_SYSTEM_SECURITY . Bu erişimi elde etmenin uygun yolu, çağıranın SE_SECURITY_NAME geçerli erişim belirtecinde ayrıcalığı etkinleştirmek, erişim için ACCESS_SYSTEM_SECURITY tanıtıcıyı açmak ve ardından ayrıcalığı devre dışı bırakmaktır.

psd
Belirtilen anahtar için ayarlanacağı güvenlik özniteliklerini belirten bir SECURITY_DESCRIPTOR yapı işaretçisi.

Dönüş Değeri

Yöntem başarılı olursa, dönüş değeri olur ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Anahtarın güvenlik özniteliklerini ayarlar. Diğer ayrıntılar için bkz RegSetKeySecurity .

CRegKey::SetMultiStringValue

Kayıt defteri anahtarının çok dizeli değerini ayarlamak için bu yöntemi çağırın.

LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) throw();

Parametreler

pszValueName
Ayarlanacağı değerin adını içeren bir dizenin işaretçisi. Bu ada sahip bir değer henüz yoksa yöntemi bunu anahtara ekler.

pszValue
Belirtilen değer adıyla depolanacak çok dizeli verilerin işaretçisi. Çoklu dize, iki null karakterle sonlandırılan - sonlandırılan dizelerden oluşan NULLbir dizidir.

Dönüş Değeri

Yöntem başarılı olursa, dönüş değeri olur ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Bu yöntem, değerini kayıt defterine yazmak için kullanır RegSetValueEx .

CRegKey::SetQWORDValue

Kayıt defteri anahtarının QWORD değerini ayarlamak için bu yöntemi çağırın.

LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) throw();

Parametreler

pszValueName
Ayarlanacağı değerin adını içeren bir dizenin işaretçisi. Bu ada sahip bir değer henüz yoksa yöntemi bunu anahtara ekler.

qwValue
QWORD Belirtilen değer adıyla depolanacak veriler.

Dönüş Değeri

Yöntem başarılı olursa, dönüş değeri olur ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Bu yöntem, değerini kayıt defterine yazmak için kullanır RegSetValueEx .

CRegKey::SetStringValue

Kayıt defteri anahtarının dize değerini ayarlamak için bu yöntemi çağırın.

LONG SetStringValue(
    LPCTSTR pszValueName,
    LPCTSTR pszValue,
    DWORD dwType = REG_SZ) throw();

Parametreler

pszValueName
Ayarlanacağı değerin adını içeren bir dizenin işaretçisi. Bu ada sahip bir değer henüz yoksa yöntemi bunu anahtara ekler.

pszValue
Belirtilen değer adıyla depolanacak dize verilerinin işaretçisi.

dwType
Kayıt defterine yazacak dizenin türü: REG_SZ (varsayılan) veya REG_EXPAND_SZ (çoklu dizeler için).

Dönüş Değeri

Yöntem başarılı olursa, dönüş değeri olur ERROR_SUCCESS. Yöntem başarısız olursa, dönüş değeri içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodudur.

Açıklamalar

Bu yöntem, değerini kayıt defterine yazmak için kullanır RegSetValueEx .

CRegKey::SetValue

Verileri belirtilen değer alanında depolamak için bu yöntemi çağırın m_hKey. Bu yöntemin önceki sürümleri artık desteklenmiyor ve olarak ATL_DEPRECATEDişaretleniyor.

LONG SetValue(
    LPCTSTR pszValueName,
    DWORD dwType,
    const void* pValue,
    ULONG nBytes) throw();

static LONG WINAPI SetValue(
    HKEY hKeyParent,
    LPCTSTR lpszKeyName,
    LPCTSTR lpszValue,
    LPCTSTR lpszValueName = NULL);

ATL_DEPRECATED LONG SetValue(
    DWORD dwValue,
    LPCTSTR lpszValueName);

ATL_DEPRECATED LONG SetValue(
    LPCTSTR lpszValue,
    LPCTSTR lpszValueName = NULL,
    bool bMulti = false,
    int nValueLen = -1);

Parametreler

pszValueName
Ayarlanacağı değerin adını içeren bir dizenin işaretçisi. Anahtarda bu ada sahip bir değer zaten yoksa yöntemi bunu anahtara ekler. NULL veya boş bir dizeysepszValueName, ""yöntemi anahtarın adsız veya varsayılan değeri için türü ve verileri ayarlar.

dwType
parametresi tarafından işaret edilen pValue veri türünü belirten bir kod belirtir.

pValue
Belirtilen değer adıyla depolanacak verileri içeren arabelleğe yönelik işaretçi.

nBytes
parametresi tarafından işaret edilen pValue bilgilerin boyutunu bayt cinsinden belirtir. Veriler , veya REG_EXPAND_SZREG_MULTI_SZnBytes türündeyseREG_SZ, sonlandırıcı null karakterin boyutunu içermelidir.

hKeyParent
Açık anahtarın tutamacı.

lpszKeyName
Oluşturulacak veya açılacak anahtarın adını belirtir. Bu ad alt anahtarı hKeyParentolmalıdır.

lpszValue
Depolanacak verileri belirtir. Bu parametre olmayanNULL olmalıdır.

lpszValueName
Ayarlanacak değer alanını belirtir. Anahtarda bu ada sahip bir değer alanı yoksa eklenir.

dwValue
Depolanacak verileri belirtir.

bMulti
False ise, dizenin türünde REG_SZolduğunu gösterir. True ise, dizenin türünde REG_MULTI_SZçok dizeli olduğunu gösterir.

nValueLen
True ise bMulti , nValueLen dizenin lpszValue karakter cinsinden uzunluğudur. False ise bMulti , -1 değeri yöntemin uzunluğu otomatik olarak hesaplayacak olduğunu gösterir.

Dönüş Değeri

Başarılı olursa döndürür ERROR_SUCCESS; aksi takdirde, içinde WINERROR.Htanımlanan sıfır olmayan bir hata kodu döndürür.

Açıklamalar

öğesinin SetValue iki özgün sürümü olarak ATL_DEPRECATED işaretlenir ve artık kullanılmamalıdır. Bu formlar kullanılırsa derleyici bir uyarı yayınlar.

Üçüncü yöntem çağırır RegSetValueEx.

Ayrıca bkz.

DCOM Örneği
Sınıfa Genel Bakış