2016-01-01から1年間の記事一覧
追記20240902 現行のC# 12ではNull許容型、IntPtrの代わりにはnintが使えます。SHGetKnownFolderPath関数のP/Invokeでは[MarshalAs(UnmanagedType.LPWStr)] out string ppszPathで文字列取得とメモリ解放が可能です。 C# 9.0 using System; using System.Dia…
追記20240902 このコードはP/Invokeでstringを渡しているので好ましくありません。現行のC# 12では[Out] char[]やref charを用います。またトップレベルステートメントや文字列補間を用いてより短く書けます。P/Invoke関係の属性SecurityCritical、SuppressU…
C++でATLを使用してShellインスタンスのIShellDisp2::GetSystemInformationメソッドを操作するサンプルコードです。エラー処理などは簡略化しています。 // IShellDisp2::GetSystemInformationのATLサンプルコード #define STRICT #include <Windows.h> #include <TChar.h> #incl</tchar.h></windows.h>…
using System; using System.Collections.Generic; using System.Linq; using Microsoft.Win32; namespace ConsoleApplication1 { class Program { static void Main() { var javaInstallInfo = new JavaInstallationInfo(); Console.WriteLine("JDK Current…
C++(Mirosoft Visual Studio 2015)でCOMを利用してエクスプローラーのカラムの名前一覧を取得するサンプルコードです。ラムダ式を適用する前のものとして残しておきます。エラー処理やメモリ管理は省略しています。 /* * エクスプローラーのカラムの名前一…