共通デスクトップ環境 1.0 アプリケーションは、DtDndDragStart() を呼び出すことによってドラッグを開始します。この関数は、ドラッグを開始するためにデスクトップに特有の準備を行い、XmDragStart() を呼び出します。DtDndDragStart() 関数の形式とパラメータの使用法は、次のとおりです。
Widget dragSource
ドラッグを始めたイベントを受け取るウィジェット
XEvent *event
ドラッグを始めたボタンが押された、またはボタン・モーション・イベント
DtDndProtocol protocol
データ転送のために使用するプロトコル。プロトコルは、次のいずれか 1 つを使用できます。
DtDND_TEXT_TRANSFER
DtDND_FILENAME_TRANSFER
DtDND_BUFFER_TRANSFER
Cardinal numItems
ドラッグする項目数を指定します。
unsigned char operations
dragSource によってサポートされるオプションを指定します。オプションは、XmDROP_MOVE、XmDROP_COPY、および XmDROP_LINK です。ドラッグ・ソースは、これらの操作の任意の組み合わせをサポートできます。操作の組み合わせを指定するには、or (|) を使用します。たとえば、移動とコピー操作をサポートするには、XmDROP_MOVE | XmDROP_COPY と指定します。
XtCallbackList convertCallback
このコールバックは、ドロップが開始され、ドロップ領域がドラッグ・ソースからデータを要求したときに呼び出されます。convertCallback については、次の節で詳しく説明します。
XtCallbackList dragFinishCallback
このコールバックは、ドラッグ & ドロップ・トランザクションが完了したときに呼び出されます。dragFinishCallback は、dragMotionHandler() をリセットして、ドラッグ & ドロップ・トランザクション時にドラッグ・ソースによって割り当てられたメモリを解放します。