1. 바로가기
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <tchar.h>
#include <shlobj.h>
// 바로가기 만들기
int main()
{
CoInitialize( 0 );
// 원하는 COM객체를 생성한다.
// 클래스 팩토리가 없을때 사용한다.
IShellLink* pLink;
HRESULT ret = CoCreateInstance(
CLSID_ShellLink, // CLS ID
0, // 포함(사용안함)
CLSCTX_INPROC_SERVER, // DLL에 있는 COM
IID_IShellLink, // 인터페이스 ID
reinterpret_cast<void**>(&pLink) );
if( FAILED( ret ) )
{
printf( "실패\n" );
CoUninitialize();
return 0;
}
//--------------------------------------------------------
pLink->SetPath(_T("C:\\windows\\system32\\calc.exe")); // 단축아이콘을 만들 화일
pLink->SetDescription( _T("Calc Application") ); // 설명
// IPersistFile 인터페이스가 필요하다.
IPersistFile* pFile;
ret = pLink->QueryInterface( IID_IPersistFile, reinterpret_cast<void**>(&pFile) );
if( FAILED( ret ) )
{
printf( "실패\n" );
pLink->Release();
CoUninitialize();
return 0;
}
pFile->Save( _T("C:\\aaa.lnk"), FALSE );
//--------------------------------------------------
pLink->Release();
pFile->Release();
CoUninitialize();
}
2. Taskbar
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <tchar.h>
#include <shlobj.h>
// Taskbar제어
// 1. SHAppBarMessage() 태스크바의 위치,크기
// 2. ITaskbarList 인터페이스
int main()
{
CoInitialize( 0 );
// TaskbarList 객체를 생성한다.
ITaskbarList* pList;
HRESULT ret = CoCreateInstance( CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER,
IID_ITaskbarList, (void**)&pList );
if( SUCCEEDED( ret ) )
{
printf( "성공\n" );
HWND hwnd = FindWindow( 0, _T("계산기") );
pList->DeleteTab( hwnd );
getch();
pList->Release();
}
CoUninitialize();
}