=encoding euc-jp =head1 NAME Win32::OLE::Enum - OLE オートメーションコレクション オブジェクト =head1 SYNOPSIS my $Sheets = $Excel->Workbooks(1)->Worksheets; my $Enum = Win32::OLE::Enum->new($Sheets); my @Sheets = $Enum->All; while (defined(my $Sheet = $Enum->Next)) { ... } =head1 DESCRIPTION このモジュールはPerlからOLEコレクション・オブジェクトへのインタフェースを提供します。 これはIEnumVARIANTインターフェースの機能をほとんどそのままのような列挙するオブジェクトを定義します。 Reset()メソッドがOLEコレクションのすべての実装で利用できるわけではない(Excel7のように)ことに注意してください。 その場合、Enumオブジェクトはコレクションを一度だけ通してみていくためだけに有効です。 =head2 Functions/Methods =over 8 =item Win32::OLE::Enum->new($object) $object のためのEnumオブジェクトを作成します; $objectは正しいOLEコレクション・オブジェクトでなければなりません。 正しく実装されたコレクション・オブジェクトはCとCメソッドをサポートしていなければならないので、反復子は常には必要ないことに注意してください。 =item $Enum->All() そのコレクションのなかのすべてのオブジェクトのリストを返します。 列挙するオブジェクトをもう一度使う前に、 $Enum->Reset() を呼ばなければなりません。 コレクションの以前の位置は失われます。 このメソッドはクラスメソッドとしても呼び出すことができます: my @list = Win32::OLE::Enum->All($Collection); =item $Enum->Clone() (もし可能であれば)コレクションでの現在の位置を保持するEnumオブジェクトのクローンを返します。 Cloneメソッドはしばしば実装されていないことに注意してください。 Clone がサポートされているかどうかわからなければ、die するのを避けるためevalブロックで$Enum->Clone()を使ってください。 =item $Enum->Next( [$count] ) コレクションの次の要素を返します。 リスト・コンテキストではオプションの$count引数は返されるオブジェクトの数を指定します。 スカラ・コンテキストでは$countの取り出されたオブジェクトの最後のものが返されます。 $countのデフォルトは1です。 =item $Enum->Reset() 列挙の順番を最初に戻します。 全く同じオブジェクトの集合が再び列挙されるかどうかは保証されません(例えばディレクトリに列挙されているファイルのとき)。 メソッドは処理が正常であることを示す値を返します。 (Reset()メソッドはExcel7のようにアプリケーションによっては実装されていないようであることに注意してください。 die することを避けるために、evalブロックを使ってください) =item $Enum->Skip( [$count] ) 列挙の次の$count分の要素を飛ばします。 $countのデフォルトは1です。 もし少なくとも$count分の要素が飛ばすことができれば関数はTRUEを返します。 十分な数の要素が残っていなければFALSEを返します。 =back =head1 AUTHORS/COPYRIGHT このモジュールは Win32::OLE ディストリビューションの一部です。 =cut