ITypeLib *pTL;
char *typelib_name;
char *modifier, *ptr;
- int mode = CONST_CS | CONST_PERSISTENT;
+ int mode = CONST_CS | CONST_PERSISTENT; /* CONST_PERSISTENT is ok here */
if (typelib_name_buffer[0]==';') {
continue;
comval *obj;
char *error_message;
char *clsid_str;
- int mode = 0; /* CONST_PERSISTENT; */
+ int mode = 0;
ITypeLib *pTL;
IMoniker *pMoniker;
ULONG ulEaten;
- /* TODO: if (server_name) */
+ /* @todo if (server_name) */
if (!server_name) {
if (SUCCEEDED(hr = CreateBindCtx(0, &pBindCtx))) {
if (INI_INT("com.autoregister_typelib")) {
unsigned int idx;
+ /* @todo check if typlib isn't already loaded */
if (C_TYPEINFO_VT(obj)->GetContainingTypeLib(C_TYPEINFO(obj), &pTL, &idx) == S_OK) {
php_COM_load_typelib(pTL, mode TSRMLS_CC);
pTL->lpVtbl->Release(pTL);
return FAILURE;
}
}
+
/* return a single element if next() was called without count */
if ((arg_count == 0) && (count == 1)) {
- long index[] = {1};
+ long index[] = {0};
SafeArrayGetElement(pSA, index, var_result);
SafeArrayDestroy(pSA);
{
pval *arg_typelib, *arg_cis;
ITypeLib *pTL;
- int mode = CONST_CS; /* CONST_PERSISTENT|CONST_CS; */
+ int mode = CONST_CS;
switch (ZEND_NUM_ARGS()) {
case 1:
PHP_MINIT_FUNCTION(COM)
{
- CoInitialize(NULL);
le_comval = zend_register_list_destructors_ex(php_comval_destructor, NULL, "COM", module_number);
php_register_COM_class(TSRMLS_C);
REGISTER_INI_ENTRIES();
PHP_MSHUTDOWN_FUNCTION(COM)
{
- CoUninitialize();
UNREGISTER_INI_ENTRIES();
return SUCCESS;
}
{
HRESULT hr;
- CoInitialize(0);
- hr = dotnet_init();
- if (FAILED(hr)) {
+ if (FAILED(hr = dotnet_init())) {
return hr;
}
PHP_MSHUTDOWN_FUNCTION(DOTNET)
{
dotnet_term();
- CoUninitialize();
return SUCCESS;
}
ITypeLib *pTL;
char *typelib_name;
char *modifier, *ptr;
- int mode = CONST_CS | CONST_PERSISTENT;
+ int mode = CONST_CS | CONST_PERSISTENT; /* CONST_PERSISTENT is ok here */
if (typelib_name_buffer[0]==';') {
continue;
comval *obj;
char *error_message;
char *clsid_str;
- int mode = 0; /* CONST_PERSISTENT; */
+ int mode = 0;
ITypeLib *pTL;
IMoniker *pMoniker;
ULONG ulEaten;
- /* TODO: if (server_name) */
+ /* @todo if (server_name) */
if (!server_name) {
if (SUCCEEDED(hr = CreateBindCtx(0, &pBindCtx))) {
if (INI_INT("com.autoregister_typelib")) {
unsigned int idx;
+ /* @todo check if typlib isn't already loaded */
if (C_TYPEINFO_VT(obj)->GetContainingTypeLib(C_TYPEINFO(obj), &pTL, &idx) == S_OK) {
php_COM_load_typelib(pTL, mode TSRMLS_CC);
pTL->lpVtbl->Release(pTL);
return FAILURE;
}
}
+
/* return a single element if next() was called without count */
if ((arg_count == 0) && (count == 1)) {
- long index[] = {1};
+ long index[] = {0};
SafeArrayGetElement(pSA, index, var_result);
SafeArrayDestroy(pSA);
{
pval *arg_typelib, *arg_cis;
ITypeLib *pTL;
- int mode = CONST_CS; /* CONST_PERSISTENT|CONST_CS; */
+ int mode = CONST_CS;
switch (ZEND_NUM_ARGS()) {
case 1:
PHP_MINIT_FUNCTION(COM)
{
- CoInitialize(NULL);
le_comval = zend_register_list_destructors_ex(php_comval_destructor, NULL, "COM", module_number);
php_register_COM_class(TSRMLS_C);
REGISTER_INI_ENTRIES();
PHP_MSHUTDOWN_FUNCTION(COM)
{
- CoUninitialize();
UNREGISTER_INI_ENTRIES();
return SUCCESS;
}
{
HRESULT hr;
- CoInitialize(0);
- hr = dotnet_init();
- if (FAILED(hr)) {
+ if (FAILED(hr = dotnet_init())) {
return hr;
}
PHP_MSHUTDOWN_FUNCTION(DOTNET)
{
dotnet_term();
- CoUninitialize();
return SUCCESS;
}