*

MFCプログラミング(3):クリップボードへのデータ形式の登録

公開日: : C++, MFC, Windows, 開発

どもです。
今回も、クリップボードネタです。

1.背景(簡単に)

アプリケーションにコピー機能を実装する際に、アプリケーション独自のデータ内容をコピーする機能が要求されました。
デフォルトで定義されているデータ形式では対応できなかったので、新たなデータ形式を定義する必要が出てきました。

2.対応

新たなデータ形式の「登録」そのものは、ものすごく簡単でした。

MSDN

引数:lpszFormatに、新しいデータ形式の名前を設定します。
処理が成功した場合には、データ形式に対応する値が返ります。
また、すでにデータ形式が登録されていた場合も、その形式に対応する値が返ります。
処理が失敗した場合には、「0」が返ります。

一度登録すれば、毎回同じ値が得られます。

3.問題点

3.1.環境依存

上記関数を使用して、同じデータ形式名を指定しても、(PCの)環境によっては異なる値が得られる(かもしれない)可能性があります。
そのため、実装の際に#defineしたり定数で持たせたり、ということができません。
設計などで対応する余地は十二分にありますが、状況によっては問題/課題になる可能性があります。

3.2.書き込み/読み出しは別

上記関数で登録できたのは、データ形式の名前「のみ」です。
そのため、登録したデータ形式に対応するデータをクリップボードに実際に書き込む処理、データ形式、フォーマットについては独自に設計しなければなりません。
その辺の情報については、「C++オブジェクト 直列化」などのキーワードで調べていただければよいかと思います。

4.まとめ

今回は、クリップボードにアプリケーション独自のデータ形式を登録することができる、という内容について書きました。
ただ、あくまで「データ形式を登録するだけ」なので、クリップボードにデータを書き込む、データを読み出す際のデータフォーマットや処理については別途定義/設計する必要があるので、注意が必要です。

ではっ!

関連記事

EF_GRY-OR_png

Eclipseで単体テストするときの注意点(?)

どもです。 今回のエントリは、Eclipse/cygwinで単体テストを行う際にハマってしまっ

記事を読む

Arduino_Logo

フォトレジスタを使ってみた-Arduinoで光検出

どもです。 今回は、タイトル通り「フォトレジスタの使い方」です。 1.フォトレジスタって何?

記事を読む

cygwin_my_image

cygwinでstartコマンド

どもです。 このエントリでは、cygwinでWindows/コマンドプロンプトの「start」

記事を読む

toppers

C言語でEV3開発(23)-モーターの性能確認

どもです。 今回は、EV3に付属しているモーター(Lモーター/Mモーター)の性能について調べてみた

記事を読む

think_about_utest

VisualStudioで実行した単体テストの結果の出力(3)-テスト実行からレポート生成までをツールで自動化

どもです。 前々回、前回と、VisualStudio/C#での単体テストの効率化について書いて

記事を読む

eclipse_oxygen

苦肉の策でLinux/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 前回のエントリでは、仮想環境(VirtaulBox)を用いたRaspberryPi3の

記事を読む

Arduino_DHT11

温度(湿度)センサを使ってみた(1)-ArduinoでDHT11

どもです。 今回は、久しぶりにセンサーを購入して使ってみたので、それについて記載します。 1.使

記事を読む

iot_at_home_eye_catch

IoT開発(2)-ESP-WROOM-02で気温測定

どもです。 この記事は、IoT開発(1)-ESP-WROOM-02のセットアップからの続きです

記事を読む

Rasp_DHT11

温度(湿度)センサを使ってみた(2)-RaspberryPi/pigpioでDHT11

どもです。 前回は、DHT11をAdrudinoにつないで温度/湿度を測定してみました。 そこで

記事を読む

eclipse-juno-logo

C言語でEV3開発(2)

どもです。 今回のエントリーの内容は、前回に引き続き「EV3の開発環境の構築」の追記です。

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

arduino_relay_switch_002_ae_g5v_drv_eye_catch
Arduinoでリレースイッチ(2)-AE-G5V-DRV

どもです。 前回の記事では、「フォトカプラリレー」を使用したLチ

tlp222af_001_eye_catch
Arduinoでリレースイッチ(1)-TLP222AF

どもです。 つい先日、やっとのことでリレースイッチを手に入れるこ

c_sharp_eye_catch
外部からMariaDbにアクセスする(2)-C#からMariaDbにアクセスする。

どもです。 前回のエントリで、外部からMariaDbにアクセスす

c_sharp_eye_catch
外部からMariaDbにアクセスする(1)-データベースの設定

どもです。 今回は、Linux上のMariaDbにWindows

think_about_utest
middle_unit
最小…よりも(ほんの)少し大きいテストフレームワーク

どもです。 今回は、単体テストのフレームワークについて書きます。

→もっと見る

PAGE TOP ↑