Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Внизпомогите перевести на Delphi Найти похожие ветки
← →
барбос (2004-12-26 00:06) [0]помогите перевести C на делфи.
mmioInstallIOProc(mmioFOURCC("M","R","E","S"),(LPMMIOPROC)IOProc,MMIO_INSTALLPROC | MMIO_GLOBALPROC);
← →
Gero © (2004-12-26 00:56) [1]mmioInstallIOProc(mmioFOURCC("M","R","E","S"), LPMMIOPROC(IOProc), MMIO_INSTALLPROC or MMIO_GLOBALPROC);
А вобще странно, что переводишь всего одну строчку…
← →
барбос (2004-12-26 01:35) [2]mmioFOURCC - ругаеться что нет такого.
А вообще то если не трудно переведите это:
#include <vcl.h>
#pragma hdrstop
#include "main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
LRESULT CALLBACK IOProc(LPMMIOINFO lpMMIOInfo, UINT uMessage, LPARAM lParam1, LPARAM lParam2);
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{ mmioInstallIOProc(mmioFOURCC("M","R","E","S"),(LPMMIOPROC)IOProc,MMIO_INSTALLPROC | MMIO_GLOBALPROC);
HRSRC hres=FindResource(HInstance,MAKEINTRESOURCE(1),"AVI");
HGLOBAL hGlob=LoadResource(HInstance,hres);
void *data=LockResource(hGlob);
int size=SizeofResource(HInstance,hres);
AnsiString fn=".MRES+0x"+IntToHex((int)data,8)+"?0x"+IntToHex(size,8);
MediaPlayer->FileName=fn; eName->Text=fn; MediaPlayer->Open();
}
//---------------------------------------------------------------------------
// This IOProc accepts filenames with element specifications +addr?size, where
// both addr and size must be 10-character numbers in the form 0x00000000
// It would have been easier simply to use the MEM predefined IO type. But that
// would have required that we make the call to mmioOpen ourselves. Our present
// solution integrates a lot more easily with the TMediaPlayer.
// Our IOProc is very limited. It only reads, and does no checking.
LRESULT CALLBACK IOProc(LPMMIOINFO lpMMIOInfo, UINT uMessage, LPARAM lParam1, LPARAM lParam2)
{ switch (uMessage)
{ case MMIOM_OPEN:
{ lpMMIOInfo->lDiskOffset = 0;
AnsiString fn=AnsiString((char*)lParam1);
AnsiString saddr=fn.SubString(7,10);
AnsiString ssize=fn.SubString(18,10);
lpMMIOInfo->adwInfo[0]=saddr.ToInt();
lpMMIOInfo->adwInfo[1]=ssize.ToInt();
return 0;
}
case MMIOM_CLOSE: return 0;
case MMIOM_READ:
{ char *data=(char*)lpMMIOInfo->adwInfo[0];
memcpy((void *)lParam1,data+lpMMIOInfo->lDiskOffset,lParam2);
lpMMIOInfo->lDiskOffset += lParam2;
return (lParam2);
}
case MMIOM_SEEK:
{ switch (lParam2)
{ case 0: lpMMIOInfo->lDiskOffset = lParam1; break;
case 1: lpMMIOInfo->lDiskOffset += lParam1; break;
case 2: lpMMIOInfo->lDiskOffset = lpMMIOInfo->adwInfo[1] - 1 - lParam1; break;
}
return lpMMIOInfo->lDiskOffset;
}
default: return -1; // Unexpected msgs. For instance, we do not process MMIOM_WRITE in this sample
}
}
Этот код по идее позволяет проигрывать avi с ресурса.
← →
барбос (2004-12-26 02:40) [3]вот только эту строчку не могу понять.
LRESULT CALLBACK IOProc(LPMMIOINFO lpMMIOInfo, UINT uMessage, LPARAM
lParam1, LPARAM lParam2)
← →
Johnmen © (2004-12-26 02:57) [4]>барбос (26.12.04 01:35) [2]
>mmioFOURCC - ругаеться что нет такого.
Пошли его на х.. ! Есть такое ! Да и вообще, он тебе - не указ !
← →
AGAMEMNUM (2004-12-26 03:01) [5]LRESULT - DWORD вобщем...
CALLBACK - означает что обработчик события
LPMMIOINFO - структура какая-то
UINT - unsigned int
LPARAM - тоже вобщем DWORD
чего непонятного то?
← →
барбос (2004-12-26 15:50) [6]
memcpy((void *)lParam1,data+lpMMIOInfo->lDiskOffset,lParam2);
Извиняюсь, ещё эту строку.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c