Module: Win32::CaptureIE::FFI::CStruct

Included in:
GDI32
Defined in:
lib/win32/capture_ie/ffi/struct.rb

Overview

:nodoc:

Defined Under Namespace

Classes: DSL

Constant Summary collapse

TYPES =
PrimitiveType::BASE_TYPES.inject({}){|h,t|
  h[t[0]] = PrimitiveType.new(t[0])
  h
}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.c_type(type) ⇒ Object



222
223
224
# File 'lib/win32/capture_ie/ffi/struct.rb', line 222

def c_type(type)
  TYPES[type]
end

.define_c_struct_under(ns, name, size = nil, &block) ⇒ Object



210
211
212
213
214
215
216
# File 'lib/win32/capture_ie/ffi/struct.rb', line 210

def define_c_struct_under(ns, name, size=nil, &block)
  dsl = DSL.new(name, size)
  dsl.instance_eval(&block)
  dsl.struct.define!(ns)
  TYPES[name] = dsl.struct
  dsl.struct
end

.define_c_type(type, decl) ⇒ Object



226
227
228
# File 'lib/win32/capture_ie/ffi/struct.rb', line 226

def define_c_type(type, decl)
  TYPES[decl] = TYPES[type]
end

.sizeof(type) ⇒ Object



218
219
220
# File 'lib/win32/capture_ie/ffi/struct.rb', line 218

def sizeof(type)
  c_type(type).size
end

Instance Method Details

#define_c_struct(name, size = nil, &block) ⇒ Object



204
205
206
# File 'lib/win32/capture_ie/ffi/struct.rb', line 204

def define_c_struct(name, size=nil, &block)
  define_c_struct_under(self, name, size, &block)
end