This file contains hidden or 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 ) | |
{ |
This file contains hidden or 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 ) | |
{ | |
// 必要に応じてエラー処理を施す。場合によっては終了する | |
} |
This file contains hidden or 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 ); |
This file contains hidden or 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; | |
} |
This file contains hidden or 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 ) ); |
This file contains hidden or 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; | |
} | |
// ハンドルの複製をどうするかは何のハンドルかに依存するのでここでは言及しない |
This file contains hidden or 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 ); |
This file contains hidden or 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 | |
) |
This file contains hidden or 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; |
This file contains hidden or 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 CMyApp::DoMessageBox( LPCTSTR lpszPrompt, UINT nType, UINT nIDPrompt ) | |
{ | |
// アイコンを整理しておく | |
if( (nType & MB_ICONMASK) == 0 ) | |
{ | |
switch( nType & MB_TYPEMASK ) | |
{ | |
case MB_OK: | |
case MB_OKCANCEL: | |
nType |= MB_ICONEXCLAMATION; |