module Fzeet::ShellFileDialogMethods

Public Instance Methods

Show(*args) click to toggle source
# File lib/fzeet/windows/comdlg/ShellFileDialog.rb, line 24
def Show(*args)
        raise "#{self}.#{__method__} failed." if
                Windows.FAILED(result = vtbl[:Show].call(self, *args)) &&
                result != Windows.HRESULT_FROM_WIN32(Windows::ERROR_CANCELLED) - 0x1_0000_0000

        result
end
item() { |si| ... } click to toggle source
# File lib/fzeet/windows/comdlg/ShellFileDialog.rb, line 32
def item
        FFI::MemoryPointer.new(:pointer) { |psi|
                next unless GetResult(psi) == Windows::S_OK

                si = Windows::ShellItem.new(psi.read_pointer)

                begin
                        yield si
                ensure
                        si.Release
                end
        }
end
items() { |sia| ... } click to toggle source
# File lib/fzeet/windows/comdlg/ShellFileDialog.rb, line 46
def items
        FFI::MemoryPointer.new(:pointer) { |psia|
                next unless GetResults(psia) == Windows::S_OK

                sia = Windows::ShellItemArray.new(psia.read_pointer)

                begin
                        yield sia
                ensure
                        sia.Release
                end
        }
end
path() click to toggle source
# File lib/fzeet/windows/comdlg/ShellFileDialog.rb, line 60
def path; item { |si| return si.path } end
paths() click to toggle source
# File lib/fzeet/windows/comdlg/ShellFileDialog.rb, line 62
def paths; items { |sia| return sia.map(&:path) } end
show(window = Application.window) click to toggle source
# File lib/fzeet/windows/comdlg/ShellFileDialog.rb, line 64
def show(window = Application.window)
        DialogResult.new((Show(window.handle) == Windows::S_OK) ? Windows::IDOK : Windows::IDCANCEL)
end