Ese código contiene algunos errores tipográficos, corrígelos. 
Saludos.

Saludos.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
#include <windows.h>
#include <stdio.h>
#include <commctrl.h>
#pragma comment(lib, "comctl32.lib")
#define ID_LISTVIEW 1
char directory[MAX_PATH]="C:\\";
typedef struct
{
char szItem[MAX_PATH];
}Item;
int AddIcon(WIN32_FIND_DATA WFData)
{
SHFILEINFO fi;
DWORD Flags = SHGFI_SYSICONINDEX | SHGFI_USEFILEATTRIBUTES;
if(WFData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
SHGetFileInfo("", FILE_ATTRIBUTE_DIRECTORY, &fi, sizeof(SHFILEINFO), Flags);
else
SHGetFileInfo(WFData.cFileName, WFData.dwFileAttributes, &fi, sizeof(SHFILEINFO), Flags);
return fi.iIcon;
}
BOOL WINAPI InitListViewImageLists(HWND hwndLV)
{
DWORD Flags = SHGFI_SYSICONINDEX | SHGFI_SMALLICON;
SHFILEINFO fi = {0};
int SystemSmallIcons = SHGetFileInfo("", 0, &fi, sizeof(SHFILEINFO), Flags);
ListView_SetImageList(hwndLV, SystemSmallIcons, LVSIL_SMALL);
return TRUE;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
static CREATESTRUCT *cs;
static HWND hWndListView;
static HFONT hFont;
static LV_ITEM lv;
static Item listitemm;
static Item* ListItem;// = (Item* )LocalAlloc(LPTR, sizeof(Item));
int i;
HANDLE hFile;
LV_COLUMN lvC;
RECT rect;
char path[MAX_PATH];
char temp[MAX_PATH];
strcpy(path,directory);
strcat(path, "*.*");
WIN32_FIND_DATA data;
LV_DISPINFO *lvd;
NMHDR *hdr;
ListItem = &listitemm;
switch (iMsg){
case WM_CREATE :
cs = (CREATESTRUCT *)lParam;
hWndListView = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW,
"", WS_VISIBLE | WS_CHILD | LVS_LIST,
0, 0, 100, 100, hwnd,(HMENU)ID_LISTVIEW, cs->hInstance, NULL);
// ListView_SetExtendedListViewStyle(hWndListView, LVS_EX_FULLROWSELECT);
lvC.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvC.fmt = LVCFMT_LEFT;
hFile = FindFirstFile(path, &data);
strcpy(ListItem->szItem, data.cFileName);
strcpy(temp, directory);
strcat(temp,data.cFileName);
lvC.iSubItem = 0;
lvC.cx = 100;
i=1;
InitListViewImageLists(hWndListView);
while(FindNextFile(hFile,&data)!=0){
strcpy(temp, directory);
strcat(temp, data.cFileName);
strcpy(data.cFileName, temp);
char *FileName = strrchr(data.cFileName, '\\');
lv.mask = LVIF_TEXT | LVIF_IMAGE;
lv.iSubItem = 0;
lv.pszText = FileName+1;
lv.iImage = AddIcon(data);
ListView_InsertItem(hWndListView, &lv);
i++;
}
FindClose(hFile);
break;
case WM_SIZE :
GetClientRect(hwnd, &rect);
MoveWindow(hWndListView, 3, 3, rect.right - 6, rect.bottom - 6, 1);
break;
case WM_NOTIFY :
switch(((LPNMHDR)lParam)->code)
{
case NM_DBLCLK :
hdr = (NMHDR FAR*)lParam;
if(hdr->hwndFrom == hWndListView)
{
// index = ListView_GetNextItem(hWndListView,-1,LVNI_SELECTED);
/* if(index != -1)
{
MessageBox(hwnd, ListItem[index].szItem, "Doubleclicked on this item", MB_OK);
}*/
}
break;
case LVN_GETDISPINFO :
lvd = (LV_DISPINFO FAR*)lParam;
if((((LPNMHDR)lParam)->hwndFrom == hWndListView))
{
if(lvd->item.iSubItem==0)
{
lvd->item.pszText = ListItem[lvd->item.iItem].szItem;
}
break;
}
}
break;
case WM_CLOSE :
DestroyWindow(hwnd);
break;
case WM_DESTROY :
DeleteObject(hFont);
PostQuitMessage(0);
break;
}
return DefWindowProc(hwnd, iMsg, wParam, lParam);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
char szAppName[] = "ListviewApp";
INITCOMMONCONTROLSEX icex;
wndclass.style = 0;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(hInstance, szAppName);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
wndclass.lpszMenuName = szAppName;
wndclass.lpszClassName = szAppName;
RegisterClass(&wndclass);
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&icex);
hwnd = CreateWindow(szAppName, szAppName,
WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 100, 600, 250,
NULL, NULL, hInstance, szCmdLine);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
Cita de: Lopardo en 18 Marzo 2009, 04:14 AM
int nivel = 0;
for(int i=0 ; i<alto ; i++)
{
for(int j=0 ; j<ancho ; j++)
{
nivel = ((int)imagen.charAt(i*ancho+j));
//Esto lo hago por el error para que sea un valor comprendido entre 0-255
//No debería pasar esto.
if(nivel>255)
{
nivel = 255;
}
g.setColor(new Color(nivel,nivel,nivel));
g.drawOval(iniX+j,iniY+i,1,1);
}
}
VOID Hook()
{
_asm cli
ZwOpenProcessIni =(PZwOpenProcess)(SYSTEMSERVICE(ZwOpenProcess));
(PZwOpenProcess)(SYSTEMSERVICE(ZwOpenProcess)) = NewZwOpenProcess;
_asm sti
}
VOID UnHook()
{
_asm cli
(PZwOpenProcess)(SYSTEMSERVICE(ZwOpenProcess)) = ZwOpenProcessIni;
_asm sti
}
// SYSTEMSERVICE es la macro que se describe en este hilo