STDMETHODIMP CArchiveFolderManager::GetIconPath(const wchar_t *ext, BSTR *iconPath, Int32 *iconIndex) { LoadFormats(); *iconPath = 0; *iconIndex = 0; for (int i = 0; i < _codecs->Libs.Size(); i++) { const CCodecLib &lib = _codecs->Libs[i]; int ii; if (lib.FindIconIndex(ext, ii)) { *iconIndex = ii; return StringToBstr(GetUnicodeString(lib.Path, GetCurrentFileCodePage()), iconPath); } } int ii; if (_codecs->InternalIcons.FindIconIndex(ext, ii)) { *iconIndex = ii; UString path; NWindows::NDLL::MyGetModuleFileName(g_hInstance, path); return StringToBstr(path, iconPath); } return S_OK; }
STDMETHODIMP CArchiveFolderManager::GetIconPath(const wchar_t *ext, BSTR *iconPath, Int32 *iconIndex) { LoadFormats(); *iconPath = 0; *iconIndex = 0; for (int i = 0; i < _codecs->Libs.Size(); i++) { const CCodecLib &lib = _codecs->Libs[i]; int ii; if (lib.FindIconIndex(ext, ii)) { *iconIndex = ii; return StringToBstr(fs2us(lib.Path), iconPath); } } int ii; if (_codecs->InternalIcons.FindIconIndex(ext, ii)) { FString path; if (NWindows::NDLL::MyGetModuleFileName(path)) { *iconIndex = ii; return StringToBstr(fs2us(path), iconPath); } } return S_OK; }
STDMETHODIMP OpenCallback::CryptoGetTextPassword(BSTR *password) { if (_coder) { UString w(_coder->onGetVoidCallback1()); if (w.Len() > 0) return StringToBstr(w, password); } return S_OK; }
STDMETHODIMP ArchiveOpenCallback::CryptoGetTextPassword(BSTR* password) { if (!PasswordIsDefined) { return E_ABORT; } return StringToBstr(Password, password); }
STDMETHODIMP CArchiveOpener::CryptoGetTextPassword(BSTR *password) { QString Password = m_pArchive->GetPassword(true); if(Password.isEmpty()) return E_ABORT; return StringToBstr(Password.toStdWString().c_str(), password); }
STDMETHODIMP CPluginOptionsCallback::GetRegistryCUPath(BSTR *value) { return StringToBstr(UString(L"Software" WSTRING_PATH_SEPARATOR L"7-Zip" WSTRING_PATH_SEPARATOR L"FM" WSTRING_PATH_SEPARATOR L"Plugins" WSTRING_PATH_SEPARATOR) + _pluginName, value); }
STDMETHODIMP CUpdateCallback100Imp::CryptoGetTextPassword2(Int32 *passwordIsDefined, BSTR *password) { *password = NULL; *passwordIsDefined = BoolToInt(_passwordIsDefined); if (!_passwordIsDefined) return S_OK; return StringToBstr(_password, password); }
STDMETHODIMP CPluginOptionsCallback::GetProgramPath(BSTR *value) { *value = 0; UString folder; if (!::GetProgramFolderPath(folder)) return E_FAIL; return StringToBstr(folder + GetDefaultProgramName(), value); }
STDMETHODIMP CUpdateCallback100Imp::CryptoGetTextPassword(BSTR *password) { *password = NULL; if (!PasswordIsDefined) { RINOK(ShowAskPasswordDialog()) } return StringToBstr(Password, password); }
STDMETHODIMP CArchiveFolderManager::GetExtensions(BSTR *extensions) { LoadFormats(); *extensions = 0; UString res; for (int i = 0; i < _codecs->Libs.Size(); i++) AddIconExt(_codecs->Libs[i], res); AddIconExt(_codecs->InternalIcons, res); return StringToBstr(res, extensions); }
STDMETHODIMP OpenCallback::CryptoGetTextPassword2(Int32 *passwordIsDefined, BSTR *password) { if (passwordIsDefined) *passwordIsDefined = BoolToInt(false); if (_coder) { UString w(_coder->onGetVoidCallback1()); if (w.Len() > 0) { if (passwordIsDefined) *passwordIsDefined = BoolToInt(true); return StringToBstr(w, password); } } return S_OK; }
HRESULT COpenCallbackConsole::Open_CryptoGetTextPassword(BSTR *password) { PasswordWasAsked = true; RINOK(Open_CheckBreak()); if (!PasswordIsDefined) { Password = GetPassword(OutStream); PasswordIsDefined = true; } return StringToBstr(Password, password); }
STDMETHODIMP ArchiveExtractCallback::CryptoGetTextPassword(BSTR* password) { if (!PasswordIsDefined) { // You can ask real password here from user // Password = GetPassword(OutStream); // PasswordIsDefined = true; printf("Password is not defined"); return E_ABORT; } return StringToBstr(Password, password); }
STDMETHODIMP CUpdateCallback100Imp::CryptoGetTextPassword(BSTR *password) { *password = NULL; if (!_passwordIsDefined) { CPasswordDialog dialog; if (dialog.Create(_parentWindow) == IDCANCEL) return E_ABORT; _password = dialog.Password; _passwordIsDefined = true; } return StringToBstr(_password, password); }
HRESULT COpenCallbackConsole::Open_CryptoGetTextPassword(BSTR *password) { *password = NULL; RINOK(CheckBreak2()); if (!PasswordIsDefined) { ClosePercents(); Password = GetPassword(_so); PasswordIsDefined = true; } return StringToBstr(Password, password); }
STDMETHODIMP CUpdateCallback100Imp::CryptoGetTextPassword(BSTR *password) { *password = NULL; if (!_passwordIsDefined) { CPasswordDialog dialog; ProgressDialog->WaitCreating(); if (dialog.Create(*ProgressDialog) != IDOK) return E_ABORT; _password = dialog.Password; _passwordIsDefined = true; } return StringToBstr(_password, password); }
STDMETHODIMP COpenArchiveCallback::CryptoGetTextPassword(BSTR *password) { PasswordWasAsked = true; if (!PasswordIsDefined) { CPasswordDialog dialog; if (dialog.Create(ProgressDialog) == IDCANCEL) return E_ABORT; Password = dialog.Password; PasswordIsDefined = true; } return StringToBstr(Password, password); }
STDMETHODIMP P7ZipArchiveUpdateCallback::CryptoGetTextPassword2(Int32 *passwordIsDefined, BSTR *password) { if (!PasswordIsDefined) { if (AskPassword) { // You can ask real password here from user // Password = GetPassword(OutStream); // PasswordIsDefined = true; PrintError("Password is not defined"); return E_ABORT; } } *passwordIsDefined = BoolToInt(PasswordIsDefined); return StringToBstr(Password, password); }
STDMETHODIMP CArchiveFolderManager::GetIconPath(const wchar_t *ext, BSTR *iconPath, Int32 *iconIndex) { LoadFormats(); *iconPath = 0; *iconIndex = 0; for (int i = 0; i < _codecs->Libs.Size(); i++) { const CCodecLib &lib = _codecs->Libs[i]; int ii = lib.FindIconIndex(ext); if (ii >= 0) { *iconIndex = ii; return StringToBstr(GetUnicodeString(lib.Path, GetCurrentFileCodePage()), iconPath); } } return S_OK; }
/* STDMETHODIMP CArchiveFolderManager::GetExtensions(const wchar_t *type, BSTR *extensions) { *extensions = 0; int formatIndex = FindFormat(type); if (formatIndex < 0) return E_INVALIDARG; // Exts[0].Ext; return StringToBstr(_codecs.Formats[formatIndex].GetAllExtensions(), extensions); } */ STDMETHODIMP CArchiveFolderManager::GetExtensions(BSTR *extensions) { LoadFormats(); *extensions = 0; UString res; for (int i = 0; i < _codecs->Libs.Size(); i++) { const CCodecLib &lib = _codecs->Libs[i]; for (int j = 0; j < lib.IconPairs.Size(); j++) { if (!res.IsEmpty()) res += L' '; res += lib.IconPairs[j].Ext; } } return StringToBstr(res, extensions); }