void CoreSetResourceModule(void * ResourceHandle) { #ifndef NO_FILEZILLA TFileZillaIntf::SetResourceModule(ResourceHandle); #else DebugUsedParam(ResourceHandle); #endif }
long reg_set_winscp_value_ex(HKEY Key, const char * ValueName, unsigned long /*Reserved*/, unsigned long Type, const uint8_t * Data, unsigned long DataSize) { DebugAssert(GetConfiguration() != nullptr); DebugAssert(Type == REG_SZ); DebugUsedParam(Type); THierarchicalStorage * Storage = reinterpret_cast<THierarchicalStorage *>(Key); DebugAssert(Storage != nullptr); if (Storage != nullptr) { UnicodeString Value(reinterpret_cast<const char *>(Data), DataSize - 1); Storage->WriteStringRaw(ValueName, Value); } return ERROR_SUCCESS; }
static long OpenWinSCPKey(HKEY Key, const char * SubKey, HKEY * Result, bool CanCreate) { long R; DebugAssert(GetConfiguration() != nullptr); DebugAssert(Key == HKEY_CURRENT_USER); DebugUsedParam(Key); UnicodeString RegKey = SubKey; intptr_t PuttyKeyLen = OriginalPuttyRegistryStorageKey.Length(); DebugAssert(RegKey.SubString(1, PuttyKeyLen) == OriginalPuttyRegistryStorageKey); RegKey = RegKey.SubString(PuttyKeyLen + 1, RegKey.Length() - PuttyKeyLen); if (!RegKey.IsEmpty()) { DebugAssert(RegKey[1] == LGOOD_SLASH); RegKey.Delete(1, 1); } if (RegKey.IsEmpty()) { *Result = static_cast<HKEY>(nullptr); R = ERROR_SUCCESS; } else { // we expect this to be called only from verify_host_key() or store_host_key() DebugAssert(RegKey == L"SshHostKeys"); std::unique_ptr<THierarchicalStorage> Storage(GetConfiguration()->CreateConfigStorage()); Storage->SetAccessMode((CanCreate ? smReadWrite : smRead)); if (Storage->OpenSubKey(RegKey, CanCreate)) { *Result = reinterpret_cast<HKEY>(Storage.release()); R = ERROR_SUCCESS; } else { R = ERROR_OPEN_FAILED; } } return R; }