11 static void oleparam_free(
void *
ptr);
 
   12 static size_t oleparam_size(
const void *
ptr);
 
   13 static VALUE foleparam_s_allocate(
VALUE klass);
 
   14 static VALUE oleparam_ole_param_from_index(
VALUE self, ITypeInfo *pTypeInfo, UINT method_index, 
int param_index);
 
   18 static VALUE ole_param_ole_type(ITypeInfo *pTypeInfo, UINT method_index, UINT index);
 
   20 static VALUE ole_param_ole_type_detail(ITypeInfo *pTypeInfo, UINT method_index, UINT index);
 
   21 static VALUE foleparam_ole_type_detail(
VALUE self);
 
   22 static VALUE ole_param_flag_mask(ITypeInfo *pTypeInfo, UINT method_index, UINT index, USHORT 
mask);
 
   27 static VALUE ole_param_default(ITypeInfo *pTypeInfo, UINT method_index, UINT index);
 
   33     {
NULL, oleparam_free, oleparam_size,},
 
   38 oleparam_free(
void *
ptr)
 
   46 oleparam_size(
const void *
ptr)
 
   73 foleparam_s_allocate(
VALUE klass)
 
   79                                 &oleparam_datatype, pparam);
 
   99     bstrs = 
ALLOCA_N(BSTR, pFuncDesc->cParams + 1);
 
  101                                      bstrs, pFuncDesc->cParams + 1,
 
  107     SysFreeString(bstrs[0]);
 
  108     if (param_index < 1 || 
len <= (UINT)param_index)
 
  118     pparam->
index = param_index - 1;
 
  126 oleparam_ole_param(
VALUE self, 
VALUE olemethod, 
int n)
 
  129     return oleparam_ole_param_from_index(
self, pmethod->
pTypeInfo, pmethod->
index, n);
 
  153     return oleparam_ole_param(
self, olemethod, idx);
 
  167 foleparam_name(
VALUE self)
 
  173 ole_param_ole_type(ITypeInfo *
pTypeInfo, UINT method_index, UINT 
index)
 
  182                             &(pFuncDesc->lprgelemdescParam[
index].tdesc), 
Qnil);
 
  198 foleparam_ole_type(
VALUE self)
 
  216                      &(pFuncDesc->lprgelemdescParam[
index].tdesc), typedetail);
 
  232 foleparam_ole_type_detail(
VALUE self)
 
  249     if (
V_UNION1((&(pFuncDesc->lprgelemdescParam[
index])), paramdesc).wParamFlags &
mask)
 
  266 foleparam_input(
VALUE self)
 
  271                                pparam->
index, PARAMFLAG_FIN);
 
  294 foleparam_output(
VALUE self)
 
  299                                pparam->
index, PARAMFLAG_FOUT);
 
  313 foleparam_optional(
VALUE self)
 
  318                                pparam->
index, PARAMFLAG_FOPT);
 
  333 foleparam_retval(
VALUE self)
 
  338                                pparam->
index, PARAMFLAG_FRETVAL);
 
  346     PARAMDESCEX * pParamDescEx;
 
  349     USHORT 
mask = PARAMFLAG_FOPT|PARAMFLAG_FHASDEFAULT;
 
  354     pElemDesc = &pFuncDesc->lprgelemdescParam[
index];
 
  355     wParamFlags = 
V_UNION1(pElemDesc, paramdesc).wParamFlags;
 
  357          pParamDescEx = 
V_UNION1(pElemDesc, paramdesc).pparamdescex;
 
  394 foleparam_default(
VALUE self)
 
  411 foleparam_inspect(
VALUE self)
 
  413     VALUE detail = foleparam_name(
self);
 
  414     VALUE defval = foleparam_default(
self);
 
  415     if (defval != 
Qnil) {