オブジェクトルーチン:
メッセージの送信

object_method

     
  型指定のないメッセージをオブジェクトに送るために、object_method 関数を使います。
   
  void *object_method(void *x, t_symbol *s, ...);
     
  x メッセージを受け取るオブジェクト
  s メッセージセレクタ
  ... メッセージに対するアーギュメント全て
     
 

レシーバオブジェクトがメッセージを受け取ると、object_method は結果を返します。そうでない場合、この関数は0を返します。

例:メッセージ bangをオブジェクト bang_me に送る場合

void *bang_result; bang_result = object_method(bang_me, gensym("bang"));


object_method_typed

     
  型チェックされたメッセージをオブジェクトに送信する場合に、 object_method_typed を使います。
   
 

t_max_err object_method_typed(void *x, t_symbol *s, long ac, t_atom *av, t_atom *rv);

     
  x メッセージを受け取るオブジェクト
  s メッセージセレクタ
  ac av の中のメッセージアーギュメントの数
  av t_atom の配列。メッセージアーギュメント
  rv 関数の戻り値。得られる場合のみ
     
 

このルーチンは、成功するとエラーコード MAX_ERR_NONE を返し、失敗した場合には“ext_obex.h”で定義される他のエラーコードの1つを返します。レシーバオブジェクトがメッセージに応答することができる場合には、object_method_typed は、その結果を rv に返します。そうでない場合、rv A_NOTHING の atom になります。


object_getmethod

     
  特定のメッセージセレクタのためにオブジェクトメソッドを取り出す場合に、 object_getmethod 関数を使います。
   
  method object_getmethod(void *x, t_symbol *s);
     
  x メソッドを要求されるオブジェクト
  s

メッセージセレクタ

     
 

このルーチンは、成功すると method を返し、失敗した場合は0を返します。