electron/shell/browser/win/scoped_hstring.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

46 lines
1.1 KiB
C
Raw Normal View History

2015-11-10 11:50:38 +00:00
// Copyright (c) 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE-CHROMIUM file.
#ifndef ELECTRON_SHELL_BROWSER_WIN_SCOPED_HSTRING_H_
#define ELECTRON_SHELL_BROWSER_WIN_SCOPED_HSTRING_H_
2015-11-10 11:50:38 +00:00
#include <hstring.h>
#include <windows.h>
2017-03-23 19:48:22 +00:00
#include <string>
2018-10-24 10:49:10 +00:00
namespace electron {
2015-11-10 11:50:38 +00:00
class ScopedHString {
public:
// Copy from |source|.
2017-03-23 19:48:22 +00:00
explicit ScopedHString(const wchar_t* source);
explicit ScopedHString(const std::wstring& source);
2015-11-10 11:50:38 +00:00
// Create empty string.
ScopedHString();
~ScopedHString();
// disable copy
ScopedHString(const ScopedHString&) = delete;
ScopedHString& operator=(const ScopedHString&) = delete;
2015-11-10 11:50:38 +00:00
// Sets to |source|.
void Reset();
void Reset(const wchar_t* source);
void Reset(const std::wstring& source);
2015-11-10 11:50:38 +00:00
// Returns string.
operator HSTRING() const { return str_; }
// Whether there is a string created.
bool success() const { return str_; }
private:
HSTRING str_ = nullptr;
2015-11-10 11:50:38 +00:00
};
2018-10-24 10:49:10 +00:00
} // namespace electron
#endif // ELECTRON_SHELL_BROWSER_WIN_SCOPED_HSTRING_H_