НОВОЕ: OS/2 GURU - Вопросы и ответы

12345

Reviews / articles about OS/2

Operating systems:
ArcaOS, eComStation, IBM OS/2 Warp
eComStation myths 

Latest  
 
 

Unsorted

 

 

AD: ArcaOS 5.1 Russian LIP
Russian ARCAOS exists and it's available since the middle of 2017. All versions are supported: 5.1, 5.1.1.

eCo Software is able to maintain OS/2 LIP packages for any other language (German, Dutch, Brazilian Portuguese, Spanish, Sweden, etc)

Interaction of processes


TITLE: Interaction of processes

DATE: 2012-08-11 17:56:09

AUTHOR: Capricorn
Please use online translator
go to http://translate.google.com
and request the translation of http://ru.ecomstation./projects/reviews/index.php?id=273
to your language

........

..... ..........., ....... ..... .... ... ............. OS (. . .... ... ...... .......... .. ..........) .... ... ...... ............ . .............. .......... .............. ..... ........... ..........., ....... ...... ........ . ....... . OS/2 ... .... .... .......... ......... ..........: ........, ....., ..... (...........) ......, ........ .... . ....... ..... ... .....-..... ....... . ............ ....... .......... .., .. ....... . ..... ...... ......-.. ........ .......... .. ... ......, .......... ............. .... ...... ...... - ........ ........... ...... ......... . .... ............ .. .. .............. .. ......., .......... ...... ....

........

........ ...... ..... ....: ............. .......... . ........ ...... .... 2 .........: "....." . "........". .... ............. ....... . ..., ... ............... ....... ........ ........., ..... .. ......., . .... .., ............ ..... .......... 2 .... .........: ...... . ........

.) ....... .... "event" (".......") ..... ... ...., ..... ......... ...... ..... ........., .... ...... .... ........ ......... .......

......:

/*************/
/*           */
/* ....... 1 */
/*           */
/*************/

#define INCL_DOS
#include 

PSZ  szSemName  = "\\SEM32\\EVENT"; /* ... ......... ...... ..... ....... \SEM32\ */
HEV  hevEvent1  = 0;                /* .......... ........ */

if (DosCreateEventSem(szSemName,    /* ... ............ ........  */
                    &hevEvent1,     /* .... ..... ......... .......... ........ */
                    DC_SEM_SHARED,  /* ........... ....... */
                    FALSE))         /* ....... ....... . .......... (.......) ......... */
   return 1;  /* ....... ....... .. ....... */

/* ... ...-.. ...... 
   .. ..... ....... ...... .... ..... .....
   ............ (............) ........ */

DosPostEventSem(hevEvent); /* ......... ........ ......... (............) */
  
/* .......... ...... */

DosCloseEventSem(hevEvent1);      /* ........... .. ........ */

 

/*************/
/*           */
/* ....... 2 */
/*           */
/*************/


..... (pipes)

[..........]

........... ......

[..........]

.......

... .... ...... .............. ..... .......... - ....... (queues). ... ... .......... ....., ....... ......-.. ........ ......... . ...... .... (pipes). .. ... ......, .......... ............. ..... ..... ....... ........... ....... ........ .., ... ..-........

...., ....... ............ ..... ........ ...... ............ ... ...-.. .......... ....... ......... Presentation Manager'., .. .... ............ ........, ....... .. ..... .. ....... ....... ........ ....... . ..., ... .. ...... .. ........, ....... ..... ........ .. ...... . ...... .........., ........ (FIFO), .. . . ...... ..... (LIFO), . ....., .. ............

....... ...... ............

.... ....., .... ....... (....), ....... .. ....... ....... ........, ....... ....... . ....... ..., ...... (....... .. .........), ......... .. . ..... .... .......... .........., ... ............ ....... ....... ............ .....

......:

/**********************/
/*                    */
/* ....... 1 (......) */
/*                    */
/**********************/

#define INCL_DOS
#include 

#define QUEUE_FIFO 0	// .......
#define QUEUE_LIFO 1	// ....
#define QUEUE_PRIO 2	// .. ...........

#define MSG_QUIT   0x0001 /* ............. ......... ... .......... ..... */

#define QUEUE_NAME "\\QUEUES\\special.que"	/* ... ........
						 * ...... ..... ....... \QUEUES\
						 */

/* ......., ....... ..... ............ ......... */
BOOL processMessage(ULONG ulMessageId, ULONG ulDataSize, PVOID pvData);

int main(void)
.
	HQUEUE hQueue;	/* .... ..... ....... ..... ....... */
	APIRET rc;	/* ......... ...... ....... API */	

	/* ......... ....... */
	rc = DosCreateQueue(&hQueue, QUEUE_FIFO, QUE_NAME);
	if (rc)
		return rc;
		
	/* .... ......... ......... .. ....... */	
	while(TRUE)
	.
		REQUESTDATA requestData;        /* ......... ... ......... ...... ....... */
		ULONG       ulDataSize;         /* .... ..... ....... ..... .......... ...... */
		PVOID       pvData;             /* .... ..... ........ ...... .. .......... ...... */
		rc = DosReadQueue(hQueue,       /* ..... ....... */
                                 &requestData, /* ...... ....... */
                                 &ulDataSize,  /* ..... .......... ...... */
                                 &pvData,      /* .......... ...... */
                                 0,            /* ...... ...... ....... .. ....... */
                                 FALSE,        /* .... */
                                 0,            /* .........  .. ..... */
                                 NULLHANDLE);  /* ..... ........-.......  .. ..... */
		if (rc || requestData.ulData==MSG_QUIT)
			break;
		processMessage(ulMessageId, ulDataSize, pvData);
	.
	rc = DosCloseQueue(hQueue);             /* ....... ....... */
	return rc;
.

 

/**********************/
/*                    */
/* ....... 2 (......) */
/*                    */
/**********************/

#define MSG_QUIT   0x0001 /* ............. ......... ... .......... ..... */

#define QUEUE_NAME "\\QUEUES\\special.que"	/* ... ........
						 * ...... ..... ....... \QUEUES\
#define INCL_DOS
#include 

int main(void)
.
	HQUEUE hQueue;	/* .... ..... ....... ..... ....... */
	APIRET rc;	/* ......... ...... ....... API */	
	PID	pid;	/* ............. ........, .......... ....... */

	/* ......... ....... */
	rc = DosOpenQueue(&pid, &hQueue, QUE_NAME);
	if (rc)
		return rc;

	rc = DosWriteQueue(hQueue, MSG_QUIT, 0L, NULL, 0L); /* .......... . ....... .........*/
	rc = DosCloseQueue(hQueue);                         /* ......... ....... */
	return rc;
.

. ...... ....... .. ...... ....... ....... . ....... ........ ...... ....... ......... ....... . .......... .... ............ .... ......... . .......... ...... (MSG_QUIT). ...... ......., ....... ... ........., ......... .... .......

........ ........, ... ....... DosCloseQueue() .. ...., ....... ..... ........ ... ...... ... ...... ....... ..... ......., ........ . .... ........

... . ... .. ............ ........ ..... .......? .... . ..., ... ... ............. .... .. .......... ..... .... . ........... ....... ....... ... ......, ..... .......... ......... .......... ....... ...... ....... .. ..... ...... ..... ...... .... ...... ....., ..... .... ....... ....... ....... . ..... ........ ... ......... .....-.. ......., .. ....... ...... ....... ...... ............ . ...... ...... ....... ....... ......., .. .. ........., .......... . ....... ... ... . ........ ..... .........

 

Test the program:

USB Dock - shows devices plugged into PC

Comments:

How to increase the population of eComStation? Every eCS specialist can setup eCS for own friends and relatives, then print instructions how to use the system LiveBook brochure

 


 

 

ArcaOS 5.1.1 whatsnew - PNG icons

PNG icons on Desktop

PNG icons on Desktop. (instead of ancient .ico designed in 1994)

PNG icons on Desktop

eCo Software: it's a significant achievement that we have created PNG icons engine for OS/2 Desktop. and designed the set of system icons. In other words, we have modernized the external view of OS/2.

Now we can discuss how to attract new users.

// надо на ENG!!
Blonde Guy

Buy OS/2 application: PM Backup Suite (incremental data backup)

Warpstock Europe 2016

Interview with Roderick Klein, video:

video

 

(C) OS2.GURU 2001 -- 2025