NPP 샘플: Windows MAPI 설명
업데이트: 2007년 11월
NPP 샘플은 텍스트 메시지를 편집하고 Windows MAPI(Messaging API)를 통해 다른 사용자 또는 다른 시스템에 메시지를 보낼 수 있는 메모장과 유사한 SDI(단일 문서 인터페이스) 응용 프로그램입니다.
보안 정보: |
---|
이 샘플 코드는 개념을 보여 주기 위해 제공되며 가장 안전한 코드 작성 방법을 제시하지 않을 수 있으므로 응용 프로그램이나 웹 사이트에서 사용할 수 없습니다. Microsoft는 샘플 코드를 원래 용도 이외의 다른 용도로 사용하는 경우 발생하는 부수적이나 파생적인 손해에 대해 책임을 지지 않습니다. |
샘플 및 이를 설치하기 위한 지침을 가져오려면
Visual Studio의 도움말 메뉴에서 샘플을 클릭합니다.
자세한 내용은 샘플 파일 찾기를 참조하십시오.
최신 버전 및 전체 샘플 목록은 Visual Studio 2008 Samples 페이지에서 온라인으로 사용할 수 있습니다.
컴퓨터의 하드 디스크에서도 샘플을 찾을 수 있습니다. 기본적으로 샘플과 추가 정보 파일은 \Program Files\Visual Studio 9.0\Samples\ 아래의 폴더에 복사됩니다. Visual Studio Express Edition의 경우에는 모든 샘플이 온라인에 있습니다.
샘플 빌드 및 실행
NPP 샘플을 빌드하고 실행하려면
솔루션 파일인 NPP.sln을 엽니다.
빌드 메뉴에서 빌드를 클릭합니다.
디버그 메뉴에서 디버깅하지 않고 시작을 클릭합니다.
File 메뉴에는 편집 창의 내용을 MAPI 메시지에 첨부할 수 있는 Send 명령이 있습니다. 아직 로그온하지 않은 상태에서 Send를 선택하면 MAPI 세션을 시작하기 위해 사용자 이름과 암호를 묻는 메시지가 표시됩니다.
메뉴 선택 사항 자체를 리소스 파일에 추가하는 기능은 제외하고 이 기능을 활성화하는 중요한 두 개의 코드는 응용 프로그램에서 유지 관리하는 CNotepadDoc 인스턴스에 대한 메시지 맵에 포함되어 있습니다. 이러한 코드는 다음과 같습니다.
ON_COMMAND(ID_FILE_SEND_MAIL, OnFileSendMail)
ON_UPDATE_COMMAND_UI(ID_FILE_SEND_MAIL, OnUpdateFileSendMail)
CDocument::OnFileSendMail과 CDocument::OnUpdateFileSendMail은 MFC에 빌드되며, 응용 프로그램에 이 수준의 MAPI 지원을 확보하는 데 추가 작업은 필요하지 않습니다.
키워드
이 샘플에서는 다음의 키워드를 보여 줍니다.
AfxGetMainWnd, AfxMessageBox, CComboBox::Copy, CComboBox::Create, CComboBox::GetDroppedState, CComboBox::Paste, CComboBox::SetEditSel, CComboBox::ShowDropDown, CDC::GetTextExtent, CDC::GetTextMetrics, CDC::SelectObject, CDialog::DoModal, CDialog::OnCancel, CDialog::OnInitDialog, CDocument::OnNewDocument, CEdit::GetLineCount, CEdit::LineFromChar, CEdit::LineIndex, CEdit::LineScroll, CEdit::SetSel, CEditView::GetEditCtrl, CEditView::GetSelectedText, CEditView::OnFindNext, CFrameWnd::Create, CFrameWnd::DockControlBar, CFrameWnd::EnableDocking, CFrameWnd::GetActiveView, CFrameWnd::RecalcLayout, CObject::AssertValid, CObject::Dump, CObject::Serialize, CRect::Height, CStatusBar::CommandToIndex, CStatusBar::SetPaneText, CString::Format, CString::GetLength, CString::LoadString, CToolBar::GetItemRect, CToolBar::SetButtonInfo, CView::GetDocument, CView::OnBeginPrinting, CView::OnDraw, CView::OnEndPrinting, CView::OnPreparePrinting, CWinApp::AddDocTemplate, CWinApp::InitInstance, CWinApp::LoadStdProfileSettings, CWinApp::OnFileNew, CWinApp::OnIdle, CWinApp::OpenDocumentFile, CWnd::Create, CWnd::DoDataExchange, CWnd::FromHandle, CWnd::GetDescendantWindow, CWnd::GetDlgItem, CWnd::GetFocus, CWnd::GetStyle, CWnd::GetWindowRect, CWnd::GetWindowText, CWnd::GetWindowTextLength, CWnd::KillTimer, CWnd::OnClose, CWnd::OnCreate, CWnd::PostMessage, CWnd::PreTranslateMessage, CWnd::ScreenToClient, CWnd::SendMessage, CWnd::SetFocus, CWnd::SetFont, CWnd::SetTimer, CWnd::SetWindowPos, CWnd::SetWindowText, CWnd::ShowWindow, CreateFontIndirect, DragAcceptFiles, EndDialog, EnumFontFamilies, GetDlgItem, GetKeyState, GetLocalTime, GetStockObject, LoadBitmap, MessageBeep, SendMessage, SetWindowText, memcpy
참고: |
---|
이 샘플을 비롯한 일부 샘플은 Visual C++ 마법사, 라이브러리 및 컴파일러의 변경 내용을 반영하도록 수정되지 않았지만 해당 작업의 수행 방법을 보여 줍니다. |