body { margin:0px; padding:0px; background:#f6f6f6; color:#000000; font-size: small; } #outer-wrapper { font:normal normal 100% 'Trebuchet MS',Trebuchet,Verdana,Sans-Serif; } a { color:#DE7008; } a:hover { color:#9E5205; } a img { border-width: 0; } #content-wrapper { padding-top: 0; padding-right: 1em; padding-bottom: 0; padding-left: 1em; } @media all { div#main { float:right; width:66%; padding-top:30px; padding-right:0; padding-bottom:10px; padding-left:1em; border-left:dotted 1px #e0ad12; word-wrap: break-word; /* fix for long text breaking sidebar float in IE */ overflow: hidden; /* fix for long non-text content breaking IE sidebar float */ } div#sidebar { margin-top:20px; margin-right:0px; margin-bottom:0px; margin-left:0; padding:0px; text-align:left; float: left; width: 31%; word-wrap: break-word; /* fix for long text breaking sidebar float in IE */ overflow: hidden; /* fix for long non-text content breaking IE sidebar float */ } } @media handheld { div#main { float:none; width:90%; } div#sidebar { padding-top:30px; padding-right:7%; padding-bottom:10px; padding-left:3%; } } #header { padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; border-bottom:dotted 1px #e0ad12; background:#F5E39e; } h1 a:link { text-decoration:none; color:#F5DEB3 } h1 a:visited { text-decoration:none; color:#F5DEB3 } h1,h2,h3 { margin: 0; } h1 { padding-top:25px; padding-right:0px; padding-bottom:10px; padding-left:5%; color:#F5DEB3; background:#DE7008; font:normal bold 300% Verdana,Sans-Serif; letter-spacing:-2px; } h3.post-title { color:#9E5205; font:normal bold 160% Verdana,Sans-Serif; letter-spacing:-1px; } h3.post-title a, h3.post-title a:visited { color: #9E5205; } h2.date-header { margin-top:10px; margin-right:0px; margin-bottom:0px; margin-left:0px; color:#777777; font: normal bold 105% 'Trebuchet MS',Trebuchet,Verdana,Sans-serif; } h4 { color:#aa0033; } #sidebar h2 { color:#B8A80D; margin:0px; padding:0px; font:normal bold 150% Verdana,Sans-serif; } #sidebar .widget { margin-top:0px; margin-right:0px; margin-bottom:33px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; font-size:95%; } #sidebar ul { list-style-type:none; padding-left: 0; margin-top: 0; } #sidebar li { margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; list-style-type:none; font-size:95%; } .description { padding:0px; margin-top:7px; margin-right:12%; margin-bottom:7px; margin-left:5%; color:#9E5205; background:transparent; font:bold 100% Verdana,Sans-Serif; } .post { margin-top:0px; margin-right:0px; margin-bottom:30px; margin-left:0px; } .post strong { color:#000000; font-weight:bold; } pre,code { color:#999999; } strike { color:#999999; } .post-footer { padding:0px; margin:0px; color:#444444; font-size:80%; } .post-footer a { border:none; color:#968a0a; text-decoration:none; } .post-footer a:hover { text-decoration:underline; } #comments { padding:0px; font-size:110%; font-weight:bold; } .comment-author { margin-top: 10px; } .comment-body { font-size:100%; font-weight:normal; color:black; } .comment-footer { padding-bottom:20px; color:#444444; font-size:80%; font-weight:normal; display:inline; margin-right:10px } .deleted-comment { font-style:italic; color:gray; } .comment-link { margin-left:.6em; } .profile-textblock { clear: both; margin-left: 0; } .profile-img { float: left; margin-top: 0; margin-right: 5px; margin-bottom: 5px; margin-left: 0; border: 2px solid #DE7008; } #sidebar a:link { color:#999999; text-decoration:none; } #sidebar a:active { color:#ff0000; text-decoration:none; } #sidebar a:visited { color:sidebarlinkcolor; text-decoration:none; } #sidebar a:hover { color:#B8A80D; text-decoration:none; } .feed-links { clear: both; line-height: 2.5em; } #blog-pager-newer-link { float: left; } #blog-pager-older-link { float: right; } #blog-pager { text-align: center; } .clear { clear: both; } .widget-content { margin-top: 0.5em; } /** Tweaks for layout editor preview */ body#layout #outer-wrapper { margin-top: 0; } body#layout #main, body#layout #sidebar { margin-top: 10px; padding-top: 0; } -->

Tuesday, February 17, 2009

64bit System Design

64-bit System Design
http://www.microsoft.com/whdc/system/platform/64bit/default.mspx
Microsoft provides 64-bit versions of the Microsoft Windows operating system for both workstation and server computers. A 64-bit system requires special design considerations that differ from 32-bit platform design, including considerations for firmware, hard disk partitions, and device drivers.
General 64-bit Windows
Best Practices for WoW64
Designing for 64-bit Windows
IA-64 Systems and ACPI 2.0 64-bit Tables
Gearing up for 64-bit Computing on Windows Server
WOW64 Implementation Details
GUID Partition Table (GPT) and Master Boot Record (MBR)
Custom Bootstrap Actions in Windows Vista
MBR System Disk Conversion for Itanium-Based Systems
Modifications to Microsoft Boot Components: Update
Using GPT Drives
Windows and GPT FAQ
Unified Extensible Firmware Interface - EFI
Installing Windows Server 2008 and Windows Vista SP1 on UEFI Systems
Microsoft Extensible Firmware Initiative FAT32 File System Specification, V. 1.03
Microsoft Portable Executable and Common Object File Format Specification
UEFI and Windows
UEFI Support and Requirements: Microsoft Windows Server 2008
Windows Authenticode Portable Executable Signature Format
Unified EFI Update [WinHEC 2005; 493 KB]
Extensible Firmware Interface Specification
Implementing the Unified Extensible Firmware Interface with Intel's Framework

Machine Check Architecture (MCA)

MCA Implementation Guide for 64-bit Windows XP and Windows Server 2003
MCA Support in 64-bit Windows XP and Windows Server 2003
Machine Check Exception Reporting

Developer Resources for 64-bit Computing
Calling Convention for x64 64-Bit Environments
Platform SDK Update: 64-bit Vista, Server 2008 & .NET 3.5
Search on MSDN for "Itanium"
Search on MSDN for "x64"
Windows Installer on 64-bit Operating Systems

64-bit Platform Specifications
Industry Specification References for Windows Logo Program
Intel IA-64 Architecture Software Developer's Manual
Intel Itanium Processor Family System Abstraction Layer Specification (SAL 3.0)
See Also
64-bit Driver Guidelines
Getting Ready for 64-bit Windows

How to marshal interfaces across apartments in Visual C++

When using a STA COM on multi-threaded environment, we maybe got COM errors.
Because a STA COM Interface could not be shared throuth different threads.
If you want share a COM interface among threads, you shoud marshal a COM interface.
And If Application has a UI, we should message pump, so that It could be blocked while marshalling.
Reference this Microsoft KB article.
http://support.microsoft.com/kb/206076

Monday, February 9, 2009

Embeded controls on dialog are could receive only defined notify message

Windows System sends WM_PARENTNOTIFY messages to each control windows.
So controls can take a message and behave specify actions.
However, Windows System does not sends message to dialog template control that has
WS_EX_NOPARENTNOTIFY property.
When RC compiles dialog template , each controls create with WS_EX_NOPARENTNOTIFY.
User can not prevent it.
We can only define Visual Studio pre-defined notify messages.
(Mouse left button down/up , etc)

If you want to make controls receive every messages, do not place controls on dialog template.
And create a control via Create(or CreateEx) function.

reference : http://msdn.microsoft.com/en-us/library/ms644995.aspx

Monday, February 2, 2009

Threre's not exist "HttpRequest.h" file on PSDK include folder.

I've notified that "Httprequest.h" header file does not exist on Platform SDK .


Only "Httprequest.idl" file been in .


We can easily generate Httprequest.h file with Httprequest.idl file .


Via MIDL compiler.
midl [idl file position]



After compile, we can get Httprequest.h header file.