カタバミさんのプログラミングノート

日曜プログラマーがプログラミング関係のメモを記録するブログです。

C#

C#でWin32 API TaskDialog関数を呼び出すサンプルコード

C#でTaskDialogを表示するにはWin32 APIのTaskDialog関数(comctl32.dll)を呼び出すサンプルコードです。適当なC#のWindows フォーム アプリケーション (.NET Framework) プロジェクトのForm1にボタン(Button1)を作成して、Clickイベントの名前を合わせて…

「Windowsの標準コントロール」と「C#の標準コントロール」

本文 前回の記事で平然と(Windows 10の)「標準コントロール」「コモンコントロール」と「C#の標準コントロール」という言葉を使ってしまったのですが、冷静に振り返ればこれらの言葉遣いは正しかったのかなと。多分に想像ですが、以下がその回答に近いかな…

C#でIEnumStringインターフェイスを実装する

C#でIEnumStringインターフェイスを実装するには、System.Runtime.InteropServices.COMTypes名前空間で定義されたC#のIEnumStringインターフェイスが利用できます。このインターフェイスを継承したクラスを実装することでCOMのIEnumStringインターフェイスを…

C#用IShellFolderのファイル名(表示名)変更に必要な関数のラッパーを提供するクラスと拡張メソッドファイル

概要とコード サンプルコード 概要とコード 動作確認環境:Windows 10 64ビット、Microsoft Visual Studio 2019、C# 7.3 Win32 API IShellFolderインターフェイスのファイル名(表示名)変更に必要な関数のラッパーを提供するクラスと拡張メソッドファイルの…

Win32 API CIDA構造体のラッパークラス

特殊ファイル・フォルダのドロップ受け入れで使用することを目的としたWin32 API CIDA構造体のラッパークラスです。unsafeの使用を避けるためにGCHandleを使用しており、プロジェクトの設定変更が不用な代わりにGCHandleによるコストが発生します。 動作確認…

C# Win32 API STRRET構造体のラッパー構造体

C#でWin32 APIのSTRRET構造体を扱うためのラッパー構造体です。継承や内部データの操作は考慮しておらず、string型(文字列)への変換とメモリ解放処理のみ提供しています。 動作確認環境:Windows 10 64ビット、Microsoft Visual Studio 2019、C# 7.3

C#であるAndroid端末のファイルのドロップ処理を実装する場合の注意

動作確認環境:Windows 10 64ビット、Microsoft Visual Studio 2019、C# 7.3 本文 FileDropフォーマットが存在しないことに対する対処 DragOverイベントハンドラにおけるData.Effect設定の注意 参考 本文 あるAndroid機種はメーカーの公開するドライバをイン…

C# AngleSharp 0.12.1でHTML要素を追加する

C#

C#のAngleSharpでは、素直にノードのInnerHtmlプロパティへ直接代入(=)または追加(+=)することで要素に子要素を追加できます。例えば、適当なHTMLドキュメントを作成してそのBODY要素にHTML要素を追加するには以下のようにします。 // AngleSharpのusing…

C#のUnsafeクラス

C#

MicrosoftはNuGetを通してUnsafeクラスを公開しています。これを利用することで/unsafeオプションを使用せずに変数をポインタとして扱うことができるようになります。バイト配列を構造体として参照するあるいはその逆も可能なため、素直にバイト配列として取…

C# LINQ to Objectsのインデックス付きメソッド

C# LINQのコレクション、ファイル、文字列などに関するインデックス付きメソッドの覚え書きです。System.LINQ.Enumerable Classで、2番目以降の引数にFunc<TSource,Int32,...>が含まれるものはインデックス付き形式に対応しています。具体的には以下のメソッドが挙げられます。</tsource,int32,...>…

C#で実行ファイルの会社名にMicrosoftを含むレジストリに登録されたCOMクラスを選択する方法

C#、Windows 10でレジストリに登録されたCOMクラスから実行ファイルの会社名にMicrosoftを含むものを選択するソースコードです。 概要 ソースコード 出力例(抜粋) 補足説明 COMクラスの登録場所 レジストリとWOW64 名前付きタプル インデックス付きSelect …