Ruby 2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)

Data Structures | Macros | Functions | Variables
win32ole.h File Reference
`#include "ruby/ruby.h"`
`#include "ruby/st.h"`
`#include "ruby/encoding.h"`
`#include <ctype.h>`
`#include <windows.h>`
`#include <ocidl.h>`
`#include <olectl.h>`
`#include <ole2.h>`
`#include <stdlib.h>`
`#include <math.h>`
`#include <varargs.h>`
`#include <objidl.h>`
`#include "win32ole_variant_m.h"`
`#include "win32ole_typelib.h"`
`#include "win32ole_type.h"`
`#include "win32ole_variable.h"`
`#include "win32ole_method.h"`
`#include "win32ole_param.h"`
`#include "win32ole_event.h"`
`#include "win32ole_variant.h"`
`#include "win32ole_record.h"`
`#include "win32ole_error.h"`

Go to the source code of this file.

## Data Structures
struct | oledata

## Macros
#define | GNUC_OLDER_3_4_4
#define | va_init_list(a, b) va_start(a)
#define | DOUT fprintf(stderr,"%s(%d)\n", __FILE__, __LINE__)
#define | DOUTS(x) fprintf(stderr,"%s(%d):" #x "=%s\n",__FILE__, __LINE__,x)
#define | DOUTMSG(x) fprintf(stderr, "%s(%d):" #x "\n",__FILE__, __LINE__)
#define | DOUTI(x) fprintf(stderr, "%s(%d):" #x "=%d\n",__FILE__, __LINE__,x)
#define | DOUTD(x) fprintf(stderr, "%s(%d):" #x "=%f\n",__FILE__, __LINE__,x)
#define | V_UNION1(X, Y) ((X)->Y)
#define | V_I1REF(X) V_UNION(X, pcVal)
#define | V_UI2REF(X) V_UNION(X, puiVal)
#define | V_INT(X) V_UNION(X, intVal)
#define | V_INTREF(X) V_UNION(X, pintVal)
#define | V_UINT(X) V_UNION(X, uintVal)
#define | V_UINTREF(X) V_UNION(X, puintVal)
#define | I8_2_NUM RB_INT2NUM
#define | UI8_2_NUM RB_UINT2NUM
#define | NUM2I8 RB_NUM2INT
#define | NUM2UI8 RB_NUM2UINT
#define | OLE_ADDREF(X) (X) ? ((X)->lpVtbl->AddRef(X)) : 0
#define | OLE_RELEASE(X) (X) ? ((X)->lpVtbl->Release(X)) : 0
#define | OLE_FREE(x)
#define | OLE_GET_TYPEATTR(X, Y) ((X)->lpVtbl->GetTypeAttr((X), (Y)))
#define | OLE_RELEASE_TYPEATTR(X, Y) ((X)->lpVtbl->ReleaseTypeAttr((X), (Y)))
#define | WC2VSTR(x) ole_wc2vstr((x), TRUE)

## Functions
struct oledata * | oledata_get_struct (VALUE obj)
LPWSTR | ole_vstr2wc (VALUE vstr)
LONG | reg_open_key (HKEY hkey, const char *name, HKEY *phkey)
LONG | reg_open_vkey (HKEY hkey, VALUE key, HKEY *phkey)
VALUE | reg_enum_key (HKEY hkey, DWORD i)
VALUE | reg_get_val (HKEY hkey, const char *subkey)
VALUE | reg_get_val2 (HKEY hkey, const char *subkey)
void | ole_initialize (void)
VALUE | default_inspect (VALUE self, const char *class_name)
char * | ole_wc2mb (LPWSTR pw)
VALUE | ole_wc2vstr (LPWSTR pw, BOOL isfree)
BOOL | ole_initialized (void)
HRESULT | ole_docinfo_from_type (ITypeInfo *pTypeInfo, BSTR *name, BSTR *helpstr, DWORD *helpcontext, BSTR *helpfile)
VALUE | ole_typedesc2val (ITypeInfo *pTypeInfo, TYPEDESC *pTypeDesc, VALUE typedetails)
VALUE | make_inspect (const char *class_name, VALUE detail)
void | ole_val2variant (VALUE val, VARIANT *var)
void | ole_val2variant2 (VALUE val, VARIANT *var)
void | ole_val2variant_ex (VALUE val, VARIANT *var, VARTYPE vt)
VALUE | ole_variant2val (VARIANT *pvar)
HRESULT | ole_val_ary2variant_ary (VALUE val, VARIANT *var, VARTYPE vt)
VOID * | val2variant_ptr (VALUE val, VARIANT *var, VARTYPE vt)
HRESULT | typelib_from_val (VALUE obj, ITypeLib **pTypeLib)

## Variables
VALUE | cWIN32OLE
LCID | cWIN32OLE_lcid

## Macro Definition Documentation

## ◆ DOUT

#define DOUT fprintf(stderr,"%s(%d)\n", __FILE__, __LINE__)

Definition at line 38 of file win32ole.h.

## ◆ DOUTD

#define DOUTD | ( |  | x | ) | fprintf(stderr, "%s(%d):" #x "=%f\n",__FILE__, __LINE__,x)

Definition at line 42 of file win32ole.h.

## ◆ DOUTI

#define DOUTI | ( |  | x | ) | fprintf(stderr, "%s(%d):" #x "=%d\n",__FILE__, __LINE__,x)

Definition at line 41 of file win32ole.h.

## ◆ DOUTMSG

#define DOUTMSG | ( |  | x | ) | fprintf(stderr, "%s(%d):" #x "\n",__FILE__, __LINE__)

Definition at line 40 of file win32ole.h.

## ◆ DOUTS

#define DOUTS | ( |  | x | ) | fprintf(stderr,"%s(%d):" #x "=%s\n",__FILE__, __LINE__,x)

Definition at line 39 of file win32ole.h.

## ◆ GNUC_OLDER_3_4_4

#define GNUC_OLDER_3_4_4

Value:
((__GNUC__ < 3) || \
((__GNUC__ <= 3) && (__GNUC_MINOR__ < 4)) || \
((__GNUC__ <= 3) && (__GNUC_MINOR__ <= 4) && (__GNUC_PATCHLEVEL__ <= 4)))

Definition at line 7 of file win32ole.h.

## ◆ I8_2_NUM

#define I8_2_NUM RB_INT2NUM

Definition at line 91 of file win32ole.h.

## ◆ NUM2I8

#define NUM2I8 RB_NUM2INT

Definition at line 93 of file win32ole.h.

## ◆ NUM2UI8

#define NUM2UI8 RB_NUM2UINT

Definition at line 94 of file win32ole.h.

## ◆ OLE_ADDREF

#define OLE_ADDREF | ( |  | X | ) | (X) ? ((X)->lpVtbl->AddRef(X)) : 0

Definition at line 97 of file win32ole.h.

## ◆ OLE_FREE

#define OLE_FREE | ( |  | x | ) |

Value:
{\
if(ole_initialized() == TRUE) {\
if(x) {\
OLE_RELEASE(x);\
(x) = 0;\
}\
}\
}

Definition at line 99 of file win32ole.h.

## ◆ OLE_GET_TYPEATTR

#define OLE_GET_TYPEATTR | ( |  | X,
|  |  | Y
| ) |  | ((X)->lpVtbl->GetTypeAttr((X), (Y)))

Definition at line 108 of file win32ole.h.

## ◆ OLE_RELEASE

#define OLE_RELEASE | ( |  | X | ) | (X) ? ((X)->lpVtbl->Release(X)) : 0

Definition at line 98 of file win32ole.h.

## ◆ OLE_RELEASE_TYPEATTR

#define OLE_RELEASE_TYPEATTR | ( |  | X,
|  |  | Y
| ) |  | ((X)->lpVtbl->ReleaseTypeAttr((X), (Y)))

Definition at line 109 of file win32ole.h.

## ◆ UI8_2_NUM

#define UI8_2_NUM RB_UINT2NUM

Definition at line 92 of file win32ole.h.

## ◆ V_I1REF

#define V_I1REF | ( |  | X | ) | V_UNION(X, pcVal)

Definition at line 62 of file win32ole.h.

## ◆ V_INT

#define V_INT | ( |  | X | ) | V_UNION(X, intVal)

Definition at line 70 of file win32ole.h.

## ◆ V_INTREF

#define V_INTREF | ( |  | X | ) | V_UNION(X, pintVal)

Definition at line 74 of file win32ole.h.

## ◆ V_UI2REF

#define V_UI2REF | ( |  | X | ) | V_UNION(X, puiVal)

Definition at line 66 of file win32ole.h.

## ◆ V_UINT

#define V_UINT | ( |  | X | ) | V_UNION(X, uintVal)

Definition at line 78 of file win32ole.h.

## ◆ V_UINTREF

#define V_UINTREF | ( |  | X | ) | V_UNION(X, puintVal)

Definition at line 82 of file win32ole.h.

## ◆ V_UNION1

#define V_UNION1 | ( |  | X,
|  |  | Y
| ) |  | ((X)->Y)

Definition at line 47 of file win32ole.h.

## ◆ va_init_list

#define va_init_list | ( |  | a,
|  |  | b
| ) |  | va_start(a)

Definition at line 34 of file win32ole.h.

## ◆ WC2VSTR

#define WC2VSTR | ( |  | x | ) | ole_wc2vstr((x), TRUE)

Definition at line 130 of file win32ole.h.

## Function Documentation

## ◆ default_inspect()

VALUE default_inspect | ( | VALUE | self,
|  | const char * | class_name
| ) |  |

Definition at line 1345 of file win32ole.c.

References make_inspect(), rb_funcall, and rb_intern.

## ◆ make_inspect()

VALUE make_inspect | ( | const char * | class_name,
|  | VALUE | detail
| ) |  |

Definition at line 1333 of file win32ole.c.

References rb_str_cat2, rb_str_concat(), rb_str_new2, and str.

Referenced by default_inspect().

## ◆ ole_docinfo_from_type()

HRESULT ole_docinfo_from_type | ( | ITypeInfo * | pTypeInfo,
|  | BSTR * | name,
|  | BSTR * | helpstr,
|  | DWORD * | helpcontext,
|  | BSTR * | helpfile
| ) |  |

Definition at line 3647 of file win32ole.c.

References HRESULT(), i, name, and OLE_RELEASE.

## ◆ ole_initialize()

void ole_initialize | ( | void |  | ) |

Definition at line 813 of file win32ole.c.

References HRESULT().

## ◆ ole_initialized()

BOOL ole_initialized | ( | void |  | ) |

Definition at line 395 of file win32ole.c.

References g_ole_initialized.

## ◆ ole_typedesc2val()

VALUE ole_typedesc2val | ( | ITypeInfo * | pTypeInfo,
|  | TYPEDESC * | pTypeDesc,
|  | VALUE | typedetails
| ) |  |

Definition at line 3708 of file win32ole.c.

References Qnil, rb_ary_push(), rb_str_new2, and str.

## ◆ ole_val2variant()

void ole_val2variant | ( | VALUE | val,
|  | VARIANT * | var
| ) |  |

Definition at line 1249 of file win32ole.c.

References cWIN32OLE, cWIN32OLE_RECORD, cWIN32OLE_VARIANT, NULL, OLE_ADDREF, ole_rec2variant(), ole_variant2variant(), oledata_get_struct(), oledata::pDispatch, rb_cTime, and rb_obj_is_kind_of().

## ◆ ole_val2variant2()

void ole_val2variant2 | ( | VALUE | val,
|  | VARIANT * | var
| ) |  |

Definition at line 1325 of file win32ole.c.

Referenced by ole_val2variant_ex().

## ◆ ole_val2variant_ex()

void ole_val2variant_ex | ( | VALUE | val,
|  | VARIANT * | var,
|  | VARTYPE | vt
| ) |  |

Definition at line 982 of file win32ole.c.

References NULL, NUM2I8, NUM2UI8, ole_val2variant2(), and Qnil.

Referenced by val2variant_ptr().

## ◆ ole_val_ary2variant_ary()

HRESULT ole_val_ary2variant_ary | ( | VALUE | val,
|  | VARIANT * | var,
|  | VARTYPE | vt
| ) |  |

Definition at line 1187 of file win32ole.c.

References Check_Type, HRESULT(), i, NULL, and T_ARRAY.

## ◆ ole_variant2val()

VALUE ole_variant2val | ( | VARIANT * | pvar | ) |

Definition at line 1418 of file win32ole.c.

References ALLOC_N, free(), HRESULT(), i, obj, Qnil, rb_ary_new(), rb_eRuntimeError, and rb_raise().

## ◆ ole_vstr2wc()

LPWSTR ole_vstr2wc | ( | VALUE | vstr | ) |

Definition at line 865 of file win32ole.c.

References DATA_PTR, and rb_encoding.

## ◆ ole_wc2mb()

char* ole_wc2mb | ( | LPWSTR | pw | ) |

Definition at line 743 of file win32ole.c.

## ◆ ole_wc2vstr()

VALUE ole_wc2vstr | ( | LPWSTR | pw,
|  | BOOL | isfree
| ) |  |

Definition at line 946 of file win32ole.c.

## ◆ oledata_get_struct()

struct oledata* oledata_get_struct | ( | VALUE | obj | ) |

Definition at line 857 of file win32ole.c.

References TypedData_Get_Struct.

Referenced by ole_val2variant(), and typelib_from_val().

## ◆ reg_enum_key()

VALUE reg_enum_key | ( | HKEY | hkey,
|  | DWORD | i
| ) |  |

Definition at line 1710 of file win32ole.c.

References buf, BUFSIZ, err, i, NULL, Qnil, and rb_str_new2.

## ◆ reg_get_val()

VALUE reg_get_val | ( | HKEY | hkey,
|  | const char * | subkey
| ) |  |

Definition at line 1725 of file win32ole.c.

References ALLOC_N, err, free(), len, NULL, Qnil, rb_str_new2, and size.

Referenced by reg_get_val2().

## ◆ reg_get_val2()

VALUE reg_get_val2 | ( | HKEY | hkey,
|  | const char * | subkey
| ) |  |

Definition at line 1753 of file win32ole.c.

References err, NULL, Qnil, and reg_get_val().

## ◆ reg_open_key()

LONG reg_open_key | ( | HKEY | hkey,
|  | const char * | name,
|  | HKEY * | phkey
| ) |  |

Definition at line 1698 of file win32ole.c.

References name.

Referenced by reg_open_vkey().

## ◆ reg_open_vkey()

LONG reg_open_vkey | ( | HKEY | hkey,
|  | VALUE | key,
|  | HKEY * | phkey
| ) |  |

Definition at line 1704 of file win32ole.c.

References key, reg_open_key(), and StringValuePtr.

## ◆ typelib_from_val()

HRESULT typelib_from_val | ( | VALUE | obj,
|  | ITypeLib ** | pTypeLib
| ) |  |

Definition at line 3908 of file win32ole.c.

References cWIN32OLE_lcid, HRESULT(), index, lcid, NULL, obj, OLE_RELEASE, oledata_get_struct(), and oledata::pDispatch.

## ◆ val2variant_ptr()

VOID* val2variant_ptr | ( | VALUE | val,
|  | VARIANT * | var,
|  | VARTYPE | vt
| ) |  |

Definition at line 1017 of file win32ole.c.

References cWIN32OLE_lcid, HRESULT(), NULL, ole_raise(), ole_val2variant_ex(), and rb_eRuntimeError.

## Variable Documentation

## ◆ cWIN32OLE

VALUE cWIN32OLE

Definition at line 115 of file win32ole.h.

## ◆ cWIN32OLE_lcid

LCID cWIN32OLE_lcid

Definition at line 116 of file win32ole.h.

Referenced by Init_win32ole(), typelib_from_val(), and val2variant_ptr().

TRUE
#define TRUE
Definition: nkf.h:175
ole_initialized
BOOL ole_initialized(void)
Definition: win32ole.c:395