2024-02-15 17:14:06 -08:00

38 lines
1.0 KiB
Swift

// Copyright © 2021 Saleem Abdulrasool <compnerd@compnerd.org>
// SPDX-License-Identifier: BSD-3
import CWinRT
extension String {
public init(from hString: HSTRING?) {
var length: UINT32 = 0
let pwszBuffer: PCWSTR = WindowsGetStringRawBuffer(hString, &length)
self.init(decoding: UnsafeBufferPointer(start: pwszBuffer, count: Int(length)), as: UTF16.self)
}
public init(hString: HString) {
var length: UINT32 = 0
let pwszBuffer: PCWSTR = WindowsGetStringRawBuffer(hString.get(), &length)
self.init(decoding: UnsafeBufferPointer(start: pwszBuffer, count: Int(length)), as: UTF16.self)
}
}
extension Bool {
public init(from val: boolean) {
self.init(booleanLiteral: val != 0)
}
}
extension Character {
public init(from wchar: WCHAR) {
if let scalar = Unicode.Scalar(wchar) {
self.init(scalar)
} else {
self.init("")
}
}
}
extension UnsafeMutableRawPointer {
public static var none : UnsafeMutableRawPointer? { return nil }
}