View RelayCommand.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Diagnostics; | |
using System.Windows.Input; | |
namespace SimpleMVVM | |
{ | |
public class RelayCommand : ICommand | |
{ | |
private readonly Action<object> execute; | |
private readonly Predicate<object> canExecute; |
View StdinPipe.ps1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# StdinPipe.ps1 [-InputObject] <string[]> [-ReqireParam] <string> [[-OptionalParam] <string>] [<CommonParameters>] | |
[CmdletBinding()] | |
param ( | |
[parameter(Mandatory=$true,ValueFromPipeline=$true,HelpMessage="標準入力か引数で受け取るデータ")] | |
[string[]]$InputObject, | |
[parameter(Mandatory=$true,ValueFromPipeline=$false,HelpMessage="必須パラメータ")] | |
[string]$ReqireParam, | |
[parameter(Mandatory=$false,ValueFromPipeline=$false,HelpMessage="オプションパラメータ")] | |
[string]$OptionalParam | |
) |
View ParallelRendering.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 排他制御せずにレンダリングしてもらう(メモリイータータイプ) | |
private ImageSource CreateThumbnail( stirng filePath, Cube.Pdf.Page page ) | |
{ | |
using( var renderer = new DocumentRenderer( filePath ) ) | |
using( var image = renderer.Render( page, page.Size ) ) | |
using( var stream = new MemoryStream() ) | |
{ | |
image.Save( stream, ImageFormat.png ); | |
stream.Seek( 0, SeekOrigin.Begin ); | |
return BitmapFrame( stream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad ); |
View ClassA.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ClassA | |
{ | |
public: | |
static bool IsValidHandle( HANDLE handle ) | |
{ | |
//return handle != INVALID_HANDLE_VALUE; | |
return handle != INVALID_HANDLE_VALUE && handle != nullptr; | |
//return handle != nullptr; | |
} | |
// ハンドルの複製をどうするかは何のハンドルかに依存するのでここでは言及しない |
View LoadPngFromResouce
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// リソースファイル上はこんな感じで格納 | |
// #define IDB_PNG 12345 | |
// IDB_PNG PNG "res\\png.png" | |
Gdiplus::Bitmap* LoadPngFromResource( HINSTANCE hInst, UINT resID ) | |
{ | |
HRSRC hResInfo = FindResource( hInst, MAKEINTRESOURCE(resID), _T("PNG") ); | |
HGLOBAL hResImage = LoadResource( hModule, hResInfo ); | |
DWORD size = SizeofResource( hModule, hResInfo ); | |
const BYTE* srcImage = static_cast<const BYTE*>( LockResource( hResImage ) ); | |
IStreamPtr ptrStream( SHCreateMemStream( srcImage, size ) ); |
View RunMessageLoop_Minimum.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int RunMessageLoop() | |
{ | |
MSG msg; | |
while( GetMessage( &msg, nullptr, 0, 0 ) ) | |
{ | |
TranslateMessage( &msg ); | |
DispatchMessage( &msg ); | |
} | |
return msg.wParam; | |
} |
View RunMessageLoop_PeekMessage.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int RunMessageLoop() | |
{ | |
MSG msg; | |
do{ | |
if( PeekMessage( &msg, nullptr, 0, 0, PM_REMOVE ) ) | |
{ | |
if( msg.message != WM_QUIT && !PreTranslateMessage( &msg ) ) | |
{ | |
TranslateMessage( &msg ); | |
DispatchMesage( &msg ); |
View RunMessageLoop_GetMessage.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int RunMessageLoop() | |
{ | |
MSG msg = { 0 }; | |
BOOL ret; | |
while( (ret=GetMessage( &msg, nullptr, 0, 0 )) != 0 ) | |
{ | |
if( ret == -1 ) | |
{ | |
// 必要に応じてエラー処理を施す。場合によっては終了する | |
} |
View RunMessageLoop_MsgWaitForMultipleObjects.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <map> | |
#include <functional> | |
// waitActions に登録する例は載せていない(通常は、排他制御して追加処理するのが良い) | |
std::map<HANDLE, std::function<bool(bool,bool&)>> waitActions; | |
DWORD APIENTRY SetupWaitHandles( HANDLE* waitHandles, DWORD capacityCount ) | |
{ | |
DWORD waitCount = 0; | |
if( capacityCount > 0 ) | |
{ |
View IUnknown.idl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
local, | |
object, | |
uuid(00000000-0000-0000-C000-000000000046), | |
pointer_default(unique) | |
] | |
interface IUnknown | |
{ | |
typedef [unique] IUnknown *LPUNKNOWN; |
NewerOlder