va_start(ap, cp);
va_start(ap, password);
void multiedit(struct ctlpos *cp, ...){    RECT r;    va_list ap;    int percent, xpos;    percent = xpos = 0;    va_start(ap, cp);    while (1) {	char *text;	int staticid, editid, pcwidth;	text = va_arg(ap, char *);	if (!text)	    break;	staticid = va_arg(ap, int);	editid = va_arg(ap, int);	pcwidth = va_arg(ap, int);	r.left = xpos + GAPBETWEEN;	percent += pcwidth;	xpos = (cp->width + GAPBETWEEN) * percent / 100;	r.right = xpos - r.left;	r.top = cp->ypos;	r.bottom = STATICHEIGHT;	doctl(cp, r, "STATIC", WS_CHILD | WS_VISIBLE, 0, text, staticid);	r.top = cp->ypos + 8 + GAPWITHIN;	r.bottom = EDITHEIGHT;	doctl(cp, r, "EDIT",	      WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL,	      WS_EX_CLIENTEDGE, "", editid);    }    va_end(ap);    cp->ypos += STATICHEIGHT + GAPWITHIN + EDITHEIGHT + GAPBETWEEN;}