{{div_begin}} [[← 5 章に戻る|Palm OS Programmer's API Reference/5]] [[↑トップへ|Palm OS Programmer's API Reference]] [[7 章に進む →|Palm OS Programmer's API Reference/7]] {{div_end}} {{div_begin style="margin-bottom:-10px"}} !!!6 クリップボード {{div_end}} {{div_begin "style='position:absolute;right:0px;font-size:70%;margin-right:15px;margin-top:15px;width:250px;'"}} *{{goto Clipboard Data Structures,クリップボード データ構造体}} **{{goto ClipboardFormatType,ClipboardFormatType}} *{{goto Clipboard Functions,クリップボード関数}} **{{goto ClipboardAddItem,ClipboardAddItem}} **{{goto ClipboardAppendItem,ClipboardAppendItem}} **{{goto ClipboardGetItem,ClipboardGetItem}} {{div_end}} {{div_begin "style='position:relative;padding:0px;padding-right:5px;padding-left:10px;margin-right:250px;margin-top:20px;width:auto;border-right:dotted;border-right-width:2px;border-right-color:silver;'"}} この章では {{span style='color:blue;font-family:monospace;',Clipboard.h}} で定義されているクリップボード API について説明します。この章では、以下のことについて説明します。 *{{goto Clipboard Data Structures,クリップボード データ構造体}} *{{goto Clipboard Functions,クリップボード関数}} !!{{anchor Clipboard Data Structures}}クリップボード データ構造体 {{goto top,^TOP^}} !{{anchor ClipboardFormatType}}ClipboardFormatType Enum {{goto top,^TOP^}} '''目的''' {{span style='color:blue;font-family:monospace;',ClipboardFormatType}} 列挙体(原文: enum)はクリップボードに追加される、または、クリップボードから取得されるデータの型を指定します。 '''Prototype''' enum clipboardFormats { clipboardText, clipboardInk, clipboardBitmap }; typedef enum clipboardFormats ClipboardFormatType; '''定数''' *{{span style='color:blue;font-family:monospace;',clipboardText}} **テキスト データ。これは、最も一般的に使われるクリップボードです。 *{{span style='color:blue;font-family:monospace;',clipboardInk}} **予約されています。 *{{span style='color:blue;font-family:monospace;',clipboardBitmap}} **ビットマップ データ '''コメント''' 各型のクリップボードのデータは別々に維持されます。つまり、クリップボードにテキストの文字列を追加し、それからビットマップを追加し、それからクリップボードから {{span style='color:blue;font-family:monospace;',clipboardText}} アイテムを取得する操作を行った場合、ビットマップの前に追加した文字列を受け取ります。ビットマップはテキスト データを上書きしません。逆もまた真です。 !!{{anchor Clipboard Functions}}クリップボード関数 {{goto top,^TOP^}} !{{anchor ClipboardAddItem}}ClipboardAddItem 関数 {{goto top,^TOP^}} '''目的''' 指定されたクリップボードに渡されたアイテムを追加します。渡されたアイテムと同じ型の現在のアイテム(がもしあれば)を置き換えます。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',Clipboard.h}} '''Prototype''' void ClipboardAddItem ( const ClipboardFormatType format, const void *ptr, UInt16 length ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ format}} **テキスト、インク(?原文は ink)、ビットマップなど。{{goto ClipboardFormatType,ClipboardFormatType}} を参照してください。 *{{span style='color:blue;font-family:monospace;',→ ptr}} **クリップボードにあるアイテムへのポインタ *{{span style='color:blue;font-family:monospace;',→ length}} **クリップボードにあるアイテムのサイズ(バイト単位) '''返り値''' 返り値はありません。 '''コメント''' クリップボードはこの関数に渡されるデータのコピーを作成します。そのため、クリップボードに渡したデータを解放しても、クリップボードの内容を破壊することはありません。また、クリップボードに定数データやスタック-ベースのデータを渡すこともできます。 //---- //{{span style='color:red;font-weight:bold;',WARNING!}} クリップボードに null で終了する文字列を追加することはできません。 //---- ::{{span style='color:red;font-weight:bold;',WARNING!}} :::クリップボードに null で終了する文字列を追加することはできません。 '''参照''' {{goto FldCut,FldCut()|Palm OS Programmer's API Reference/9}}, {{goto FldCopy,FldCopy()|Palm OS Programmer's API Reference/9}} !{{anchor ClipboardAppendItem}}ClipboardAppendItem 関数 {{goto top,^TOP^}} '''目的''' クリップボードにあるアイテムにデータを付加します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',Clipboard.h}} '''Prototype''' Err ClipboardAppendItem( const ClipboardFormatType format, const void *ptr, UInt16 length ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ format}} **テキスト、インク(?原文は ink)、ビットマップなど。{{goto ClipboardFormatType,ClipboardFormatType}} を参照してください。この関数は {{span style='color:blue;font-family:monospace;',clipboardType}} フォーマットに対してのみ使用されることを意図しています。 *{{span style='color:blue;font-family:monospace;',→ ptr}} **クリップボードにあるアイテムに付加するデータへのポインタ *{{span style='color:blue;font-family:monospace;',→ length}} **クリップボードに付加するデータのサイズ(バイト単位) '''返り値 成功時には 0 を返します。クリップボードにデータを付加するたために十分な空き容量が無い場合、{{span style='color:blue;font-family:monospace;',memErrNotEnoughSpace}} を返します。 '''コメント''' この関数は {{goto ClipboardAddItem,ClipboardAddItem()}} とは異なり、すでにあるデータを上書きしません。この関数は、いくつかの小さな分割された断片から、クリップボード上に大きなテキスト アイテムを作成することを可能にします。他のアプリケーションがクリップボードからテキストを取得するとき、クリップボードにあるアイテムは単一のものとして取得されます。 この関数は、単純に、指定されたアイテムをフォーマット解析しようとせずにクリップボード上にすでにあるアイテムに付加します。この関数は、比較的短い間隔で何度か呼び出され、アプリケーションが付加するのが終了するまで他のアプリケーションがクリップボードからテキストを取得しようとはしないという仮定に基づいています。 '''互換性''' {{goto 3.2 New Feature Set,3.2 New Feature Set|Palm OS Programmer's API Reference/B-1}} が存在する場合にのみ、実行されます。 !{{anchor ClipboardGetItem}}ClipboardGetItem 関数 {{goto top,^TOP^}} '''目的''' 指定された型のクリップボードの内容のハンドルとクリップボード アイテムの長さを返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',Clipboard.h}} '''Prototype''' MemHandle ClipboardGetItem( const ClipboardFormatType format, UInt16 *length ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ format}} **テキスト、インク(?原文は ink)、ビットマップなど。{{goto ClipboardFormatType,ClipboardFormatType}} を参照してください。 *{{span style='color:blue;font-family:monospace;',← length}} **クリップボード アイテムの長さがここに返されます(バイト単位) '''返り値''' クリップボード アイテムのハンドル '''コメント''' 返されるハンドルは実際のクリップボード チャンクへのハンドルです。返されるハンドルは、メモリを変更する API ({{goto FldSetTextHandle,FldSetTextHandle()}} など)に渡すべきものではありません。このハンドルをチャンクへ Read-only アクセスするためのものと考えてください。可能な限りすぐにクリップボードの内容をアプリケーション自身のストレージへコピーし、この関数によって返されるハンドルの代わりにそのコピーを使用してください。 この関数によって返されるハンドルを解放しないでください。それは、クリップボードに新しいアイテムが追加されたときに、解放されます。 クリップボードから取得されるテキストは null 終端子を持っていません。{{span style='color:blue;font-family:monospace;',length}} パラメータを、取得した文字列のバイト長を調べるために使用しなければなりません。 {{div_end}} {{div_begin "style='border-top:solid;border-top-width:1px;border-top-color:silver;'"}} [[← 5 章に戻る|Palm OS Programmer's API Reference/5]] [[↑トップへ|Palm OS Programmer's API Reference]] [[7 章に進む →|Palm OS Programmer's API Reference/7]] {{div_end}}