У меня есть объект ActiveX HTML, как определено здесь:
<object id="HSMBTPrintX1" width="350" height="350"
classid="CLSID:68d05400-18a6-4b39-b3ff-a17d77c1eddf" codebase=".\HSMBTPrintX.ocx">
И кнопка:
<input type="button" name="Print" value="Print" onclick="PassParameter()" />
Эта кнопка вызывает некоторый JavaScript, определенный над кнопкой, и элемент управления:
<script language="javascript" type="text/javascript">
function PassParameter() {
if (StringInput.value != " ") {
alert('1 - ' + HSMBTPrintX1);
HSMBTPrintX1.InputParameter = StringInput.value;
alert('2 - ' + StringInput.value);
var temp = HSMBTPrintX1.PrintLabel();
alert('3 -' + temp);
}
}
</script>
Мой метод кода PrintLabel C ++, здесь:
char* CHSMBTPrintXCtrl::PrintLabel(void)
{
return "temp";
//AFX_MANAGE_STATE(AfxGetStaticModuleState());
// TODO: Add your dispatch handler code here
TCHAR g_szComPort[16];
char szout[512];
HANDLE hCom;
TCHAR comPort[16];
unsigned long bytesWritten;
int counter;
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if (!FindBluetoothPort(g_szComPort))
return "minus two";
hCom = CreateFile(comPort,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
if (hCom == NULL)
return "minus one";
CStringA charstr(m_InputParameter);
// Create text to send to printer
strcpy(szout, "^XA\n");
strcat(szout, "^PRC ^LH0,0 ^LL203 ^PW406 ^MD5 ^MFF,F ^MMT ^MNM ^CF0,20,12 ^XB\n");
strcat(szout, "^FO20,05 ^AFN ^FV MASTER PACK ^FS\n");
strcat(szout, "^XZ");
// Write file to Bluetooth COM port
if(WriteFile(hCom,szout,256,&bytesWritten,NULL)==0)
{
return "one";
}
return "two";
FireLabelPrinted();
}
И, как видите, (только для тестирования), как только функция вызывается, она возвращает некоторый текст.Я пытаюсь вывести этот текст в предупреждении javascript.
Проблема в том, что переменная javascript "temp" выводит как "undefined" ... поэтому я предполагаю, что функция PrintLabel даже никогда не вызывается.
Для получения некоторой справочной информации (которая может или не может помочь в заключении) я использую VS2008, создавая проект смарт-устройства Visual C ++.В решение также добавлен CAB-проект Smart Device.Все решение тогда построено;Я копирую файлы .CAB, .INF, .OCX и .HTML в одну папку на портативном устройстве под управлением Windows CE.
Кроме того, я не очень знаком с C ++ ... и ActiveX.Любая помощь приветствуется !!
Если мне нужно предоставить больше информации, просто укажите мне направление.
Спасибо!