Windows フォームアプリケーションを作成する。
ボタンをひとつ貼り付けてクリックハンドラにコードを貼り付ける
- #pragma once
- #include <dshow.h>
- namespace aviPleayetForm {
- using namespace System;
- using namespace System::ComponentModel;
- using namespace System::Collections;
- using namespace System::Windows::Forms;
- using namespace System::Data;
- using namespace System::Drawing;
- /// <summary>
- /// Form1 の概要
- /// </summary>
- public ref class Form1 : public System::Windows::Forms::Form
- {
- public:
- Form1(void)
- {
- InitializeComponent();
- //
- //TODO: ここにコンストラクター コードを追加します
- //
- }
- protected:
- /// <summary>
- /// 使用中のリソースをすべてクリーンアップします。
- /// </summary>
- ~Form1()
- {
- if (components)
- {
- delete components;
- }
- }
- private: System::Windows::Forms::Button^ button1;
- protected:
- private:
- /// <summary>
- /// 必要なデザイナー変数です。
- /// </summary>
- System::ComponentModel::Container ^components;
- #pragma region Windows Form Designer generated code
- /// <summary>
- /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
- /// コード エディターで変更しないでください。
- /// </summary>
- void InitializeComponent(void)
- {
- this->button1 = (gcnew System::Windows::Forms::Button());
- this->SuspendLayout();
- //
- // button1
- //
- this->button1->Location = System::Drawing::Point(13, 228);
- this->button1->Name = L"button1";
- this->button1->Size = System::Drawing::Size(75, 23);
- this->button1->TabIndex = 0;
- this->button1->Text = L"button1";
- this->button1->UseVisualStyleBackColor = true;
- this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
- //
- // Form1
- //
- this->AutoScaleDimensions = System::Drawing::SizeF(6, 12);
- this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
- this->ClientSize = System::Drawing::Size(284, 263);
- this->Controls->Add(this->button1);
- this->Name = L"Form1";
- this->Text = L"Form1";
- this->ResumeLayout(false);
- }
- #pragma endregion
- private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
- IGraphBuilder *pGraph = NULL;
- IMediaControl *pControl = NULL;
- IMediaEvent *pEvent = NULL;
- // COM ライブラリを初期化する。
- HRESULT hr = CoInitialize(NULL);
- if (FAILED(hr))
- {
- printf("ERROR - Could not initialize COM library");
- return;
- }
- // フィルタ グラフ マネージャを作成し、インターフェイスを問い合わせる。
- hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
- IID_IGraphBuilder, (void **)&pGraph);
- if (FAILED(hr))
- {
- printf("ERROR - Could not create the Filter Graph Manager.");
- return;
- }
- hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
- hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
- // グラフを作成する。 重要 : この文字列をシステム上のファイルに置き換える。
- hr = pGraph->RenderFile(L"E:\\sampleMovie\\avi_divx5_mp3.avi", NULL);
- if (SUCCEEDED(hr))
- {
- // グラフを実行する。
- hr = pControl->Run();
- if (SUCCEEDED(hr))
- {
- // 完了するまで待機する。
- long evCode;
- pEvent->WaitForCompletion(INFINITE, &evCode);
- // 注 : 実際のアプリケーションでは INFINITE を使用しないこと。
- // 無期限にブロックする場合がある。
- }
- }
- pControl->Release();
- pEvent->Release();
- pGraph->Release();
- }
- };
- }
プロジェクトの変更
「プロジェクト(P)」→「***のプロパティ(P)」→「構成プロパティ」→「リンカ」→「入力」で 「追加の依存ファイル」を追加
「親またはプロジェクトの規定値から継承」 をチェック
「プロジェクト(P)」→「***のプロパティ(P)」→「構成プロパティ」→「全般」で 共通ランタイム サポートを変更
純粋MSIL共通言語ランタイム(/clr:pure) ⇒ 共通言語ランタイム(/clr)
0 件のコメント:
コメントを投稿